gpt4 book ai didi

ios - 为什么我的NSDate时区不正确?

转载 作者:行者123 更新时间:2023-12-01 19:02:11 25 4
gpt4 key购买 nike

这是代码:

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];

NSDate* newTime = [dateFormatter dateFromString:@"2011-10-19T12:22:07Z"];

[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormatter setDateFormat:@"dd-MMM-yyyy HHmm"];

NSString* finalTime = [dateFormatter stringFromDate:newTime];

问题:

我在多伦多(EST,GMT-5)。我的最后一次显示应该为0722,我看到的是0822。检查对象后,我可以看到newTime是'2011-10-19 08:22:07 EDT'。我不确定为什么会发生这种情况,但是尽管将dateFormatter时区设置为systemTimeZone,它仍然保留在finalTime字符串上。我假设systemTimeZone是EDT呢?对于为什么会发生这种情况或我如何纠正它的任何见解,将不胜感激。

提前致谢。

最佳答案

一些东西:

  • 不要在日期格式化程序上设置时区。然后删除格式字符串中Z周围的引号。这将使日期格式化程序可以从实际日期字符串中确定时区。
  • 0822的输出对于您的系统时区是正确的,因为您在10月19日处于夏令时。那天您是GMT-4,而不是GMT-5。在加拿大,2011年DST于11月6日结束。
  • 关于ios - 为什么我的NSDate时区不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22103009/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com