gpt4 book ai didi

iphone - NSDateFormatter 和日本日历

转载 作者:行者123 更新时间:2023-12-03 19:42:17 27 4
gpt4 key购买 nike

当用户未使用公历作为 iPhone 的默认日历时,我在使用 NSDateFormatter 时遇到问题。

NSString *testString = @"2011-01-14";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSDate *eventDate = [dateFormat dateFromString:testString];
[dateFormat setDateFormat:@"yyyy-MM-dd(EEE)"];
NSString *dateAndLocString = [dateFormat stringFromDate:eventDate];
[dateFormat release];

在使用公历的设备上 dateAndLocString 将等于 2011-01-13(Thu)但是当用户使用日本日历时 dateAndLocString 将等于 2011-01-13(Wed),这是错误的。

有人知道我可能做错了什么吗?

最佳答案

我找到了一种让它正常工作的方法,如果有人有更好的建议请告诉我。我们必须使用以下代码行在 NSDateFormatter 上设置本地首选用户。

[dateFormat setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:[[NSLocale preferredLanguages] objectAtIndex:0]] autorelease]];

这将为 NSDateFormatter 提供正确的用户区域设置。有些人可能会想使用

[dateFormat setLocale:[NSLocale currentLocale]];

但这将不起作用,因为即使用户语言设置为日语,在具有日语日历的系统上,[NSLocale currentLocale]也会返回 en_US@calendar=japanese。

我不知道为什么 NSDateFormatter 不能在非公历上自动工作。

关于iphone - NSDateFormatter 和日本日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4677006/

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