我有这种格式日期的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以匹配其他样式。 –