【发布时间】:2013-05-11 07:02:58
【问题描述】:
当我从服务器获取博客文章时,服务器会通过 JSON 将以下时间发送到我的 iOS 应用程序
"createdAt": "2013-05-11 05:54:07.589698"
但是,当它在 PostsViewController 中输出到屏幕时,它会显示 5:54 AM(比当地时间提前 4 小时)
但是当我创建一个帖子时,PostsViewController 会说一个时间像凌晨 1:54(正确)
所以我进行了调查,并检查了 SQLite,并将 2001 格式的某个日期之后的时间秒数转换为 GMT 模式。而且来自服务器的帖子实际上比应有的提前 4 小时。
基本上,并非所有 NSDate 在 Core Data 中都设置为 GMT,来自服务器的帖子出于某种原因都设置为 GMT+4。
请注意,目前我比格林威治标准时间晚 4 小时。
我所有的服务器时间都可以采用一种时间格式(格林威治标准时间)
我目前使用 Peter Hosey 的 ISO8601DateFormatter https://github.com/boredzo/iso-8601-date-formatter:
post.createdDate = [formatter dateFromString:[post_info objectForKey:@"createdAt"]];
那么,如何停止这种时差的双重偏移?
【问题讨论】:
标签: ios objective-c json cocoa-touch nsdate