2010-10-10 15 views
9

को जीएमटी परिवर्तित मैं वर्तमान में मेरे स्वरूप में लौटने दिनांक/समय एक API कॉल है: 2010-10-10T07:54:01.878926iPhone: NSDate स्थानीय समय

मैं मान सकते हैं इस जीएमटी है? मैंने इसे एनएसडीएट ऑब्जेक्ट में भी परिवर्तित कर दिया। क्या समय का पुनर्मूल्यांकन करने के लिए स्थानीय आईफोन समय का उपयोग करने का कोई तरीका है?

उत्तर

29
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm"; 

NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 
[dateFormatter setTimeZone:gmt]; 
NSString *timeStamp = [dateFormatter stringFromDate:[NSDate date]]; 
[dateFormatter release]; 
+0

काम करता है ... धन्यवाद! :) – unicornherder

+5

यह जीएमटी को स्थानीय समय में कैसे परिवर्तित करता है? मेरा मानना ​​है कि यह विपरीत और जीएमटी के लिए स्थानीय रूपांतरित कर रहा है? – willhblackburn

1
NSDate *sourceDate = [NSDate dateWithTimeIntervalSince1970:gmtTimestamp]; 
NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone]; 
NSInteger sourceGMTOffset = [destinationTimeZone secondsFromGMTForDate:0]; 
NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:sourceDate]; 
NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset; 
NSDate* destinationDate = [[[NSDate alloc] initWithTimeInterval:interval sinceDate:sourceDate] autorelease]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm"; 
[dateFormatter setTimeZone:destinationTimeZone]; 
NSString *localTimeString = [dateFormatter stringFromDate:destinationDate]; 
-2
NSDate *now = [NSDate date]; 
NSLog(@"%@", [now dateWithCalendarFormat:@"%Y-%m-%d %H:%M:%S" 
       timeZone:[NSTimeZone timeZoneWithName:@"GMT"]]); 
एक आकर्षण की तरह
+0

संदेश '- (एनएसएसटींग *) दिनांक विथ कैलेंडरफॉर्मैट: टाइमज़ोन:' ऐप्पल के दस्तावेज़ में मौजूद नहीं है। –

+0

यह एक त्रुटि देता है .. क्या आपने इसका परीक्षण किया? –

17
NSDate* localDateTime = [NSDate dateWithTimeInterval:[[NSTimeZone systemTimeZone] secondsFromGMT] sinceDate:pubDate]; 
+0

यह बहुत अच्छा है। यह मेरी समस्या हल कर रहा है –

+0

** स्विफ्ट **: 'स्थानीय दिनांक = एनएसडीएटी (समय अंतराल: एनएसटीइम इंटरवल (एनएसटीआईएमजेन.systemTimeZone()। सेकेंडफ्रॉमजीएमटी), दिनांक दिनांक: दिनांक) ' – Husam

संबंधित मुद्दे