我有這種格式日期的plist:這些日期的類型是什麼?
Mar 11, 2013 10:16:31 AM
這在我的控制檯顯示爲
2013-03-11 16:16:31 +0000
而web服務返回的東西,在控制檯看起來是這樣的:
2013-03-01T18:21:45.231Z
如何將我的plist日期修復爲與Web服務相同的格式?
我有這種格式日期的plist:這些日期的類型是什麼?
Mar 11, 2013 10:16:31 AM
這在我的控制檯顯示爲
2013-03-11 16:16:31 +0000
而web服務返回的東西,在控制檯看起來是這樣的:
2013-03-01T18:21:45.231Z
如何將我的plist日期修復爲與Web服務相同的格式?
關於你提到的三種日期格式:
首先是剛剛的日期格式,當你在Xcode中,在當前地區的人類可讀的日期(一個的plist看一個NSDate
,但如果你看看在文本編輯器中的plist,你會發現它實際上是用@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"
格式編寫的)。
第二是默認從description
方法格式化NSDate
(例如你NSLog
一個NSDate
)。
請參閱Apple的Technical Q&A QA1480。
順便說一句,該技術說明不包括毫秒,所以你可能要使用類似@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'SSS'Z'"
,例如:
NSDate *date = [NSDate date];
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = enUSPOSIXLocale;
formatter.dateFormat = @"yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'SSS'Z'";
formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
NSString *dateString = [formatter stringFromDate:date];
NSLog(@"%@", dateString);
,如果你想存儲日期,你可以使用這個在plist中使用RFC 3339/ISO 8601格式的字符串(或者,如果您需要將NSDate
轉換爲用於傳輸到Web服務的字符串)。如上所述,默認的plist格式不會保留NSDate
對象的小數秒,因此如果這很關鍵,那麼將日期存儲爲上述代碼生成的字符串可能會很有用。
在此日期格式可用於(使用dateFromString
)(使用stringFromDate
)將日期轉換爲字符串,以及轉換格式正確字符串NSDate
對象。
請注意,使用二進制格式('NSPropertyListXMLFormat_v1_0')編寫日期時,日期保留其小數部分。 – Manav
第一個(oops,second)格式是你用'%@'格式打印NSDate時得到的。第二個(oops,third)是一個字符串。如果您願意,可以使用NSDateFormatter格式化NSDate以匹配其他樣式。 –