iOS'dateFromString'返回不同?

时间:2016-11-14 14:38:07

标签: ios nsdate nsdateformatter

我正在使用NSDateFormatter的dateFromString,但是当它被赋予字符串时,它会吐出不同的小时。

NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
dateformatter.dateFormat = @"yyyy-MM-dd";
NSDate *firstDate = [dateformatter dateFromString:@"2017-06-02"];
NSDate *secondDate = [dateformatter dateFromString:@"2016-11-02"];

输出

firstDate:  2017-06-01 22:00:00 +0000
secondDate: 2016-11-01 23:00:00 +0000

我想知道为什么他们没有同一个小时?

1 个答案:

答案 0 :(得分:1)

您没有为两个日期指定时间,因此它们已初始化为当地时间午夜。打印时,它们以UTC格式显示。您当地的时区(中欧时间)观察2016年3月27日至2016年10月30日期间的夏令时。因此,夏令时的6月午夜日期比UTC(22:00:00)提前2小时, 11月午夜日期不属于夏令时,比UTC(23:00:00)提前1小时。