0

我存储了一个 NS 日期,记录为

2013-03-15 00:00:01 +0000

我认为 +0000 是 UTC 时间。但是,当我尝试

NSCalendar* theCalendar = [NSCalendar currentCalendar];

unsigned theUnitFlags = NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;

NSDateComponents* compsForDate = [theCalendar components:theUnitFlags fromDate:compDate];

组合记录为:

<NSDateComponents: 0xc0537b0>
    Calendar Year: 2013
    Month: 3
    Leap month: no
    Day: 14
    Hour: 20
    Minute: 0
    Second: 1
    Weekday: 5

我会假设这一天是 15 小时,小时是 0,因为我认为没有与这个日期相关的时区。谁能告诉我哪里出错了?

4

2 回答 2

4

有一个与该日期-UTC 关联的时区。还有一个与您的日历相关联的时区;可能是您的区域设置中的时区(无论如何这是默认设置)。日历为您提供了在其时区解释该日期所产生的日期组件。

于 2013-03-16T18:45:48.813 回答
1

时间字符串中的 +0000 表示 UTC(格林威治,英格兰)的小时偏移量。您在帖子中包含的结果时间组件是您的本地时区的时间。根据比较,您的本地时区与 UTC 相差 -4 小时。

凯文。

于 2013-03-16T19:02:50.540 回答