NSDateComponent给我一天增加1

时间:2013-08-09 04:50:57

标签: ios objective-c nsdate

我知道这是一个时区问题,但我不知道如何解决这个问题。

我有NSDate = 2013-07-29 01:10:01 +0000

当我执行NSDateComponent时,日期组件会显示28

我现在正处于EST时区,但为什么不直接显示29?这是一个错误吗?

如果没有,我如何解决这个问题才能正确显示?还是已经合适了?

感谢。

1 个答案:

答案 0 :(得分:3)

问题是您的日历实例目前已设置为您的时区,因此它将日期解释为格林威治标准时间前5小时(这是您在问题中粘贴的内容)。

要解决此问题,您应在您使用的日历上设置timeZone属性,以便从日期中获取日期组件。假设您的日历变量名为calendar

,那么这样的事情可能会成功
calendar.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];