iOS 'dateFromString' 返回不同?
iOS 'dateFromString' Returning different?
我正在使用 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
不知为什么他们的时间不一样?
您没有为这两个日期指定时间,因此它们被初始化为当地时间午夜。当您打印它们时,它们以 UTC 显示。您当地的时区(中欧时间)从 2016 年 3 月 27 日到 2016 年 10 月 30 日实行夏令时。因此,属于夏令时的 6 月午夜日期比 UTC 提前 2 小时 (22:00:00),而不属于夏令时的 11 月午夜日期仅比 UTC (23:00:00) 早 1 小时。
我正在使用 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
不知为什么他们的时间不一样?
您没有为这两个日期指定时间,因此它们被初始化为当地时间午夜。当您打印它们时,它们以 UTC 显示。您当地的时区(中欧时间)从 2016 年 3 月 27 日到 2016 年 10 月 30 日实行夏令时。因此,属于夏令时的 6 月午夜日期比 UTC 提前 2 小时 (22:00:00),而不属于夏令时的 11 月午夜日期仅比 UTC (23:00:00) 早 1 小时。