gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 03:32:27 27 4
gpt4 key购买 nike

在我的机器上(区域设置美国),默认的“短”日期格式设置为“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);

请注意,我使用的是年份的大写形式。一年中的第 1 周为 1,我得到这个:

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 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18193795/

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