iPhone时区问题

时间:2013-12-29 13:15:30

标签: ios iphone timezone

在.plist文件中有一个字段:

plist

我在一本简单的字典中读到它。 一切都没问题,但在客户端,他说时差是-3小时(即他看到2013年12月31日晚上10:30)

我想,我应该用他的区域设置存档项目,对吗?

UPD

  • 日期存储在plist中。
  • 日期:凌晨1:30 - >这应该是客户看到的。
  • 另外,我使用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

正确?

1 个答案:

答案 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 到用户的时区。