获取日期与 [NSDate date] 相差几个小时
我用于
NSDate *date = [NSDate date];
获取日期,但我获取的日期有 2 小时偏差。
I am using
NSDate *date = [NSDate date];
for getting the date, but the date I get is off by 2 hours.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
NSDate
对象没有时区。它们代表了一个绝对的时刻。但是,当您询问其描述(例如,通过使用 NSLog() 打印它)时,它必须选择一个时区。最合理的“默认”选择是 GMT。如果您自己不是格林威治标准时间,则日期看起来会不正确(根据您自己的偏移量)。您应该始终使用
NSDateFormatter
来创建用于显示的字符串。格式化程序的时区应设置为您的时区,这是默认值。NSDate
objects don't have time zones. They represent an absolute moment in time. However, when you ask one for itsdescription
(by printing it withNSLog()
, e.g.), it has to pick a time zone. The most reasonable "default" choice is GMT. If you're not in GMT yourself, the date will seem to be incorrect, by the amount of your own offset.You should always use an
NSDateFormatter
to create a string for display. The formatter's timezone should be set to yours, which is the default.您可以像这样更正日期:
You can get your date corrected like this: