gpt4 book ai didi

ios - NSDateFormatter 为特定日期返回 null

转载 作者:可可西里 更新时间:2023-11-01 03:56:16 28 4
gpt4 key购买 nike

NSDateFormatter 有问题。对于某些特定日期,它返回 null

我做了这个函数来调试案例:

- (void) debugTest:(NSString *)dateStr{

NSLog(@"String: %@", dateStr);

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];

NSDate *dateObj = [df dateFromString: dateStr];

NSLog(@"Date: %@", dateObj);

}

这是我某些日期的日志输出:

String: 2012-10-18
Date: 2012-10-18 03:00:00 +0000
String: 2012-10-19
Date: 2012-10-19 03:00:00 +0000
String: 2012-10-20
Date: 2012-10-20 03:00:00 +0000
String: 2012-10-21
Date: (null)
String: 2012-10-22
Date: 2012-10-22 02:00:00 +0000
String: 2012-10-23
Date: 2012-10-23 02:00:00 +0000

为什么它只对日期 2012-10-21 返回 null?

我用 2011-10-01 到 2014-11-01 的时间间隔做了其他测试,以下日期返回 null:

2011-10-16, 2012-10-21, 2013-10-20, 2014-10-19

这是某种错误吗?我做错了什么?

最佳答案

我会回答我自己的问题只是为了注册以防有人遇到同样的问题:

我添加到我的日期格式化程序[df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];[df setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];

所以,我的新代码是:

- (void) debugTest:(NSString *)dateStr{

NSLog(@"String: %@", dateStr);

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
[df setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
[df setDateFormat:@"yyyy-MM-dd"];

NSDate *dateObj = [df dateFromString: dateStr];

NSLog(@"Date: %@", dateObj);

}

我认为问题与设备的配置有关,设置这两个属性可以解决问题。

关于ios - NSDateFormatter 为特定日期返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12673302/

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