【发布时间】:2010-04-02 15:52:01
【问题描述】:
在使用 NSDate 时,有时时区会有所不同。但我根本不会搞乱语言环境或时区设置。
即有时(在同一进程中)一个 NSDate 对象可能看起来像
1.4.2010 22:01:47 +0100
有时也喜欢
1.4.2010 22:01:47 +0200
没有我做任何事情。什么触发了时区的变化?我认为日历计算(即在日期上加上 5 个月)不应该这样做,对吧?
【问题讨论】:
在使用 NSDate 时,有时时区会有所不同。但我根本不会搞乱语言环境或时区设置。
即有时(在同一进程中)一个 NSDate 对象可能看起来像
1.4.2010 22:01:47 +0100
有时也喜欢
1.4.2010 22:01:47 +0200
没有我做任何事情。什么触发了时区的变化?我认为日历计算(即在日期上加上 5 个月)不应该这样做,对吧?
【问题讨论】:
它正在调整夏令时。在我的机器上:
NSDate *now=[NSDate date];
NSDate *notNow=[now dateByAddingTimeInterval:(86400 * 250)]; // add 250 days
NSLog(@"%@", now);
NSLog(@"%@", notNow);
输出
2010-04-02 17:03:25.386 so[14786:a0f] 2010-04-02 17:03:25 +0100
2010-04-02 17:03:25.388 so[14786:a0f] 2010-12-08 16:03:25 +0000
这只是在(隐藏)调用[date description] 时发生的显示格式设置。
【讨论】: