2011-01-13 11 views
5

मैं अपने दिमाग को बिना भाग्य के रैकिंग कर रहा हूं। कोई मुझे बता सकते मैं कैसे इस स्ट्रिंग में बदल सकते हैं: एक NSDate मेंएनएसएसटींग को एनएसडीएटी में कैसे चालू करें?

"00 2011-01-13T17: 00: 00 + 11"?

+1

जांच यह पता: http://stackoverflow.com/questions/1353081/nsstring-to-nsdate – lms

उत्तर

20

यूनिकोड दिनांक स्वरूप दस्तावेज़ here

भी है, अपनी स्थिति के लिए, तो आप इस कोशिश कर सकते:

// original string 
NSString *str = [NSString stringWithFormat:@"2011-01-13T17:00:00+11:00"]; 

// convert to date 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
// ignore +11 and use timezone name instead of seconds from gmt 
[dateFormat setDateFormat:@"YYYY-MM-dd'T'HH:mm:ss'+11:00'"]; 
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"Australia/Melbourne"]]; 
NSDate *dte = [dateFormat dateFromString:str]; 
NSLog(@"Date: %@", dte); 

// back to string 
NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init]; 
[dateFormat2 setDateFormat:@"YYYY-MM-dd'T'HH:mm:ssZZZ"]; 
[dateFormat2 setTimeZone:[NSTimeZone timeZoneWithName:@"Australia/Melbourne"]]; 
NSString *dateString = [dateFormat2 stringFromDate:dte]; 
NSLog(@"DateString: %@", dateString); 

[dateFormat release]; 
    [dateFormat2 release]; 

आशा इससे मदद मिलती है।

+0

धन्यवाद यह सही है। एकल उद्धरणों में टाइमज़ोन की अपेक्षा नहीं की गई थी, लेकिन यह तय किया गया था :) – jennas

+0

मध्य में 'टी' को नहीं समझ सका। तो इससे मदद मिली। धन्यवाद! – user1244109

1

तुम कोशिश इस

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSDate *dateT = [dateFormatter dateFromString:str]; 

चीयर्स

+0

हाय, हाँ, मैं इस राशि NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; एनएसडीएटी * डेटटी = [डेटफॉर्मेटर तिथि फ्रॉमस्ट्रिंग: @ "2011-01-13T17: 00: 00 + 11: 00"]; एनएसएलओजी (@ "स्ट्रिंग से दिनांक:% @", डेट टी); यह रिटर्न (शून्य) – jennas

+0

यह आपकी मदद करेगा http://stackoverflow.com/questions/4655199/how-to-set-date-format-retrieved-from-uidatepicker/4655297#4655297 – Aditya

+0

यह गलत है, काम नहीं कर रहा है बिल्कुल, शून्य तारीख देता है। –

3

एकल उद्धरण में टी हिस्सा रखा, और वही प्रारूपण के लिए यूनिकोड डॉक्स जाँच किया। मेरे मामले में, मेरे पास कुछ ऐसा ही है, जो मैं करता हूं:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
     [dateFormat setDateFormat:@"YYYY-MM-dd'T'HH:mm:ss.SSS"]; 

फिर, बिल्कुल वही नहीं, लेकिन आपको विचार मिलता है। साथ ही, स्ट्रिंग्स और एनएसडेट्स के बीच आगे और पीछे परिवर्तित होने पर टाइमज़ोन से सावधान रहें।

फिर, मेरे मामले में, मैं का उपयोग करें:

[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"America/New_York"]]; 
+0

हाय, मैं सेटिंग [NSTimeZone systemTimeZone] जो सही क्षेत्र है। निम्नलिखित अभी भी खूनी चीज वापस आती है![dateFormatter setDateFormat: @ "yyyy-MM-dd'T'hh: mm: ssSSS"]; – jennas

+0

यह मेरे कोड के लिए था, आपको अपने कोड के लिए कुछ ऐसा करने की आवश्यकता होगी। फिर, यूनिकोड दस्तावेज़ों की जांच करें। – tbone

0

आप टचटाइम देख सकते हैं।

https://github.com/jheising/TouchTime

यह कोको और आईओएस के लिए 5.4 में PHP में भयानक स्ट्रेटोटाइम फ़ंक्शन का सीधा बंदरगाह है। यह तिथि या समय स्ट्रिंग के किसी भी मनमाना प्रारूप में काफी अधिक ले जाएगा और इसे एनएसडीएट में परिवर्तित करेगा।

आशा है कि यह काम करता है, और आनंद लें!

0

इस कोकोपोड सक्षम प्रोजेक्ट का उपयोग करने का प्रयास करें। ऐसे कई अतिरिक्त कार्य भी हैं जिनकी शायद आवश्यकता भी होगी।

"कुछ श्रेणी कार्यों के साथ कोको के एनएसडीएटी कक्षा को बढ़ाने के लिए एक श्रेणी।"

https://github.com/billymeltdown/nsdate-helper

यहाँ अपने पृष्ठ से एक उदाहरण है:

NSDate *date = [NSDate dateFromString:@"2009-03-01 12:15:23"]; 
+0

इसके अलावा, ज्यादातर कोकोपोड्स पर उपयोगिता के लिए अब खोज करते हैं। एनएसडीएटी पर पूछताछ यहां दी गई है। http://cocoapods.org/?q=NSDate –

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