gpt4 book ai didi

当日历为日语或佛教时,iOS NSDateFormatter 格式不正确

转载 作者:可可西里 更新时间:2023-11-01 05:42:18 26 4
gpt4 key购买 nike

当 Settings/General/International/Calendar 在模拟器和真实设备上都设置为日语或佛教时,我发现 iOS 上的 NSDateFormatter 出现问题。 Language 设置成什么似乎无关紧要,而 Region Format 只会重新安排内容(但仍然很糟糕)。以下结果均适用于“语言”= 英语和“区域格式”= 日本的情况。

这是我的代码(启用了 ARC):

// Configure the Date Formatter
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[NSLocale currentLocale]];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];

// Format the date string
NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];

结果:

  • iOS 4.3(日历 = 日语),dateString = “平成 24/04/13”
  • iOS 5.1(日历 = 日语),dateString = “H.24/04/09”
  • iOS 4.3(日历 = 佛教),dateString = “BE2555/04/13”
  • iOS 5.1(日历 = 佛教),dateString = “BE2555/04/13”

我找到了这个链接:http://www.cocoanetics.com/2011/12/ios-5-breaking-nsdateformatter/ ,这很有趣,但并没有真正指出我的解决方案。我还发现了这个:NSDateFormatter and Japanese calendar ,所以我稍微更改了我的代码:

[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:[[NSLocale preferredLanguages] objectAtIndex:0]]];    

然后我的结果是这样的(这些对我来说似乎都是错误的,这本质上是美国的 MM/DD/YY 格式):

  • iOS 4.3(日历 = 日语),dateString = “4/13/12”
  • iOS 5.1(日历 = 日语),dateString = “4/13/12”
  • iOS 4.3(日历 = 佛教),dateString = “4/13/12”
  • iOS 5.1(日历 = 佛教),dateString = “4/13/12”

在上面的所有结果中,唯一对我来说正确的是带有 Calendar = Japanese 的 iOS4.3。

有什么想法吗?

最佳答案

影响日期格式的是区域,而不是语言。您正在设置格式以使用用户的区域:

[dateFormatter setLocale:[NSLocale currentLocale]];

如果您希望所有用户的格式一致,您可以将其设置为系统的本地:

[dateFormatter setLocale:[NSLocale systemLocale]];

关于当日历为日语或佛教时,iOS NSDateFormatter 格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10141848/

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