objective-c – 涉及周数的NSDateFormatter问题

objective-c – 涉及周数的NSDateFormatter问题,第1张

概述在我的机器上(美国区域设置),默认的“短”日期格式设置为“1/5/13”(月/日/年). 在系统偏好设置中,我附加了一个星期编号,“1/5/13 1”. 我的问题是这段代码,我尝试将字符串转换为日期: NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];[dateFormatter setDateStyle:NSDate 在我的机器上(美国区域设置),默认的“短”日期格式设置为“1/5/13”(月/日/年).

在系统偏好设置中,我附加了一个星期编号,“1/5/13 1”.

我的问题是这段代码,我尝试将字符串转换为日期:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];[dateFormatter setDateStyle:NSDateFormatterShortStyle];NSDate *date = [dateFormatter dateFromString:@"1/5/13 1"];NSLog(@"Date: %@",date);

在我的机器上,这打印:

Date: 2000-01-01 05:00:00 +0000

那是2000年,甚至还不到2013年.

是什么导致了这个问题?

解决方法 我迟到了这个讨论,已经看到了一些提供的解决方案,但我认为它们的全部错误是两个不兼容的日期格式元素一起使用.您的原始方法失败,因为您尝试获取日期的字符串与NSDateFormatterShortStyle提供的字符串不匹配.

如果你要评估一年中的一周,那么你必须使用当年的大写形式;这提供了“年度周”类日历.

让我们重新编写原始代码以包含新格式:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];[dateFormatter setDateFormat:@"MM/dd/YY w"];NSDate *date = [dateFormatter dateFromString:@"1/5/13 1"];NSLog(@"Date: %@",date);

请注意,我正在使用该年份的大写形式.一年中有一周,我得到这个:

Date: 2013-01-05 08:00:00 +0000

和一年中的2周:

Date: 2013-01-12 08:00:00 +0000

和3:

Date: 2013-01-19 08:00:00 +0000

有道理,不是吗?日期中的日期增加7天,每个增量按一周中的一周增加.当然,时间已经过去了,但我们从未讨论过要在该领域进行评估的任何内容,是吗?

总结

以上是内存溢出为你收集整理的objective-c – 涉及周数的NSDateFormatter问题全部内容,希望文章能够帮你解决objective-c – 涉及周数的NSDateFormatter问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1023128.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存