在.plist文件中有一个字段:
我在一本简单的字典中读到它。 一切都没问题,但在客户端,他说时差是-3小时(即他看到2013年12月31日晚上10:30)
我想,我应该用他的区域设置存档项目,对吗?
UPD
NSDateFormatter
: self.customFormatter = [NSDateFormatter new];
[self.customFormatter setDateFormat:@"hh:mm a"];
然后我使用[self.customFormatter stringFromDate:date]
我认为 - 我应该查看.plist文件并更改
<date>2014-01-01T01:30:00Z</date>
到
<date>2014-01-01T01:30:00-3</date> // I see Dec 2013, 10:30 PM; client sees Jan 2014, 1:30 AM
正确?
答案 0 :(得分:3)
日期作为GMT时间存储在属性列表中。 您的时区是“GMT + 2”,因此“2014年1月1日上午1:30:00”归档为
<plist version="1.0">
<dict>
<key>time</key>
<date>2014-01-01T23:30:00Z</date>
</dict>
</plist>
因此plist archive 没有问题,它独立于任何时区/区域设置(“Z”=“Zulu time”= GMT)。
Xcode中只有属性列表编辑器,它显示日期 到你的时区和地区。
当您将值读入NSDate
对象时,它恰好代表了这一点
时间。要向用户提供值,您必须使用NSDateFormatter
,即{}
将NSDate
转换为代表此日期/时间的NSString
到用户的时区。