gpt4 book ai didi

iphone - NSDateFormatter 夏令时

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:04:26 27 4
gpt4 key购买 nike

我正在使用 NSDate 格式化程序从 Facebook Graph API 请求(格林威治标准时间)获取日期并将其转换为用户的本地时区。我可以很好地读取日期并设置它的新时区,但是当我打印出新日期时,它似乎没有考虑夏令时。

下面的时间实际上来自请求,但例如我只是输入来自 Facebook 响应的标准时间字符串

NSString *time = @"2012-04-12T15:25:09+0000"
NSTimeZone *localZone = [NSTimeZone localTimeZone];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:localZone];
[formatter setDateFormat:@"yyyy-mm-dd'T'HH:mm:ssZZZZ"];
NSDate *date = [formatter dateFromString:time];
[formatter setDateFormat:@"eee MMM dd, yyyy hh:mm a"];
NSString *dateStr = [formatter stringFromDate:date];
NSLog(@"%@",dateStr);

当它打印这个日期时,它会打印出“Thu Jan 12, 2012 10:25 AM”,这是错误的“America/New_York”时区。我应该是“2012 年 1 月 12 日星期四上午 11:25”或提前一小时。有没有办法强制夏令时?提前致谢!

编辑:我注意到它实际上错误地格式化了月份。由于某种原因,现在是四月,现在是一月。为什么会这样?

最佳答案

When it prints this date it prints out "Thu Jan 12, 2012 10:25 AM" which for "America/New_York" time zone, which is where I am, that is wrong.

没有。夏令时要到三月才开始,所以在那个时间应用夏令时是错误的。 NSDateFormatter 在这里做了正确的事情。

如果你想强制一个特定的 GMT 偏移量,你应该使用 NSTimeZone timeZoneForSecondsFromGMT: 而不是 localTimeZone

关于iphone - NSDateFormatter 夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10127704/

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