gpt4 book ai didi

ios - NSDateFormatter 不同日期的相同字符串

转载 作者:行者123 更新时间:2023-11-28 21:40:23 25 4
gpt4 key购买 nike

谁能解释为什么 NSDateFormatter 从不同的日期返回相同的字符串:

    NSDateFormatter *f = [NSDateFormatter new];

f.dateFormat = @"MM/dd/yyyy";

NSDate *dateYear0 = [[NSCalendar currentCalendar] dateWithEra:0 year:0 month:3 day:31 hour:0 minute:0 second:0 nanosecond:0];
NSDate *dateYear1 = [[NSCalendar currentCalendar] dateWithEra:0 year:1 month:3 day:31 hour:0 minute:0 second:0 nanosecond:0];

NSString *dateStrYear0 = [f stringFromDate:dateYear0];
NSString *dateStrYear1 = [f stringFromDate:dateYear1];

NSLog(@"dateYear0=%@ \t\t dateStrYear0=%@",dateYear0,dateStrYear0);
NSLog(@"dateYear1=%@ \t\t dateStrYear1=%@",dateYear1,dateStrYear1);

dateStr1 和 dateStr2 具有相同的值:

NSLog 结果:

dateYear0=0001-03-30 21:57:56 +0000     dateStrYear0=03/31/0001
dateYear1=0000-03-30 21:57:56 +0000 dateStrYear1=03/31/0001

它看起来像 0 年以某种方式影响这个?

谢谢

最佳答案

那是因为第 0 年不存在于 Gregorian Calendar 中.在处理 AD 日期时,NSDate 的最小可能值为“0001-01-01 00:00:00 +0000”,因此只要使用的值小于 1,它就会使用“0001”作为年份。您可以使用 distantPast 类方法检查最小 NSDate 值。

此外,如果您想使用 BC 日期,您应该检查 Apple 的 guideline了解更多信息。

关于ios - NSDateFormatter 不同日期的相同字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32374929/

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