2010-04-11 14 views
79

पर NSDate सेटिंग वर्तमान यूटीसी दिनांक/समय के साथ NSDate में प्रवेश करने का कोई आसान तरीका है?उद्देश्य-सी वर्तमान यूटीसी

+1

'[NSDate तारीख]' काम करोगे? मुझे यकीन नहीं है कि यह यूटीसी है या नहीं। – zneak

+0

आप एक एनएसडीएटी को यूटीसी में सेट करना चाहते हैं। (सुनिश्चित नहीं है कि हर कोई आपको "स्थानीय दिनांक" या "एनएसएसटींग" मान क्यों दे रहा है।) – Patricia

+2

यूटीसी को 'एनएसडीएटी' सेट जैसी कोई चीज़ नहीं है, इसमें इसके साथ कोई टाइमज़ोन नहीं है। –

उत्तर

144

[NSDate date];

आप एक वर्ग है कि कुछ इस तरह करता है बनाना चाहते हैं, हो सकता है:

-(NSString *)getUTCFormateDate:(NSDate *)localDate 
{ 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"]; 
    [dateFormatter setTimeZone:timeZone]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
    NSString *dateString = [dateFormatter stringFromDate:localDate]; 
    [dateFormatter release]; 
    return dateString; 
} 
+2

एनएसटीमेज़ोन * टाइमज़ोन = [एनएसटीमेज़ोन समय ज़ोन विथनाम: @ "यूटीसी"]; [डेटफॉर्मेटर सेटटाइमज़ोन: टाइमज़ोन]; जो इसे धन्यवाद देता है – Brodie

+4

दिनांक स्वरूपक को रिलीज़ करना न भूलें ... –

+1

यदि यह उत्पादन में आगे बढ़ रहा है तो आप वास्तव में एक स्थिर तिथि बनाना चाहते हैं जो आलसी प्रारंभिक है। एक तिथि का निर्माणफॉर्मेटर वास्तव में कुछ महंगा है। – jessecurry

13

NSDate एक निरपेक्ष संदर्भ तारीख से एक अंतराल के लिए एक संदर्भ है, 1 जनवरी, 2001 00:00 GMT । तो वर्ग विधि [एनएसडीएटी तिथि] उस अंतराल का प्रतिनिधित्व वापस कर देगी। यूटीसी में एक पाठ प्रारूप में उस डेटा को प्रस्तुत करने के लिए, आवश्यकतानुसार उचित एनएसटीमेज़ोन (यूटीसी) के साथ एनएसडीएटीफॉर्मेटर का उपयोग करें।

+3

मेरा मानना ​​है कि [NSDate अब] [एनएसडीएटी तिथि] इस उत्तर में होना चाहिए। – foldinglettuce

+0

आप सही @ फोल्डिंगलेटस - निश्चित हैं। – rcw3

2

NSDate ऑब्जेक्ट्स किसी भी विशेष कैलेंड्रिकल सिस्टम या समय क्षेत्र से स्वतंत्र समय में एक बिंदु को समाहित करते हैं। दिनांक वस्तुएं अपरिवर्तनीय हैं, एक पूर्ण संदर्भ दिनांक (00:00:00 यूटीसी 1 जनवरी 2001 को) के सापेक्ष एक परिवर्तनीय समय अंतराल का प्रतिनिधित्व करती हैं।

स्विफ्ट संस्करण:

extension NSDate { 
    func getUTCFormateDate() -> String { 
     let dateFormatter = NSDateFormatter() 
     let timeZone = NSTimeZone(name: "UTC") 
     dateFormatter.timeZone = timeZone 
     dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
     return dateFormatter.stringFromDate(self) 
    } 
} 
संबंधित मुद्दे