gpt4 book ai didi

iOS NSDateFormatter 从字符串返回错误的日期

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

我正在使用相同的、未修改的 NSDateFormatter 对字符串中的日期进行编码和解码。将日期编码为字符串可以正常工作,但奇怪的是,将其取回却效果不佳。这甚至不是时区的问题,因为大多数日期都是 几个月。我有:

NSDateFormatter *_calibrationDateFormat = [[NSDateFormatter alloc] init];
[_calibrationDateFormat setDateFormat:@"EEEE MMM d, YYYY"];
NSString *text = @"Thursday Dec 6, 2018";
NSLog(@"%@\n%@", text, [_calibrationDateFormat dateFromString:text]);

输出:

Monday Aug 12, 2013
2012-12-31 05:00:00 +0000

再尝试其他日期:

Friday Apr 12, 2013
2013-01-04 05:00:00 +0000

Saturday Oct 26, 2013
2013-01-05 05:00:00 +0000

Thursday Sep 10, 2015
2015-01-01 05:00:00 +0000

Thursday Jan 5, 2017
2017-01-05 05:00:00 +0000

我真的不知道它解码这些日期的逻辑。我也尝试了不同的格式,例如删除星期几,或者使用完整的月份名称而不是 3 个字母的缩写,但结果同样令人困惑。请注意,对于我的测试,我使用了 UIDatePicker 并使用相同的日期格式化程序对结果日期进行编码,以避免在格式化日期时出现任何人为错误。有什么可靠的方法可以从这样的人类可读日期字符串中获取日期对象吗?

最佳答案

我认为问题在于您使用的是 YYYY 而不是 yyyy。大写变体用于基于“一年中的一周”的日历(有关更多信息,请参见 the UTS spec),这实际上与在许多(大多数?)情况下获取文字日历年不同。使用 @"EEEE MMM d, yyyy" 作为日期格式化程序可能会为您解决此问题。

关于iOS NSDateFormatter 从字符串返回错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14838591/

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