gpt4 book ai didi

ios - NSDateFormatter dateFromString 1981-04-01

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:00:37 25 4
gpt4 key购买 nike

我有代码:

NSString *str = @"1981-04-01";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *back = [dateFormatter dateFromString:str];

NSLog("output: %@", back); //output (null)

当我尝试不同的日期时:

str = @"1982-04-01";//同样返回nil

str = @"1985-04-01";//这看起来不错,输出:1985-03-31 20:00:00 +0000

看来我的时区是 GMT+4。在模拟器中测试:xcode 6.3, ios 8.3 (iphone5s)

为什么 NSDateFormatter 有时会返回 nil?

我相信这与我所在的地区有关:爱沙尼亚。有关 OSX 和 iOS 区域设置的图像。


(来源:ignis.ee)


(来源:ignis.ee)

已解决:一定是夏令时开关问题。请阅读@Matthias Bauch 后面的评论。

  1. 添加 dateFormatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];效果很好!

最佳答案

我建议您将时区设置为格林威治标准时间

dateFormatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];

完整的代码从你的角度来看就好。 .

NSString *str = @"1981-04-01";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *back = [dateFormatter dateFromString:str];

NSLog(@"output: %@", back);

你的输出像

output: 1981-04-01 00:00:00 +0000

关于ios - NSDateFormatter dateFromString 1981-04-01,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29621570/

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