我知道这是一个时区问题,但我不知道如何解决这个问题。
我有NSDate = 2013-07-29 01:10:01 +0000
当我执行NSDateComponent
时,日期组件会显示28
!
我现在正处于EST
时区,但为什么不直接显示29
?这是一个错误吗?
如果没有,我如何解决这个问题才能正确显示?还是已经合适了?
感谢。
答案 0 :(得分:3)
问题是您的日历实例目前已设置为您的时区,因此它将日期解释为格林威治标准时间前5小时(这是您在问题中粘贴的内容)。
要解决此问题,您应在您使用的日历上设置timeZone
属性,以便从日期中获取日期组件。假设您的日历变量名为calendar
:
calendar.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];