在我的 iPhone 应用程序中,我希望能够确定用户区域设置的日期格式是月/日(即 1/5 表示一月五日)还是日/月(即 5/1 表示一月五日)。我有一个自定义的 NSDateFormatter
,它不使用一种基本格式,例如 NSDateFormatterShortStyle
(11/23/37)。
在理想情况下,我想使用 NSDateFormatterShortStyle,但不显示年份(仅显示月份和日期#)。实现此目标的最佳方法是什么?
最佳答案
你想使用 NSDateFormatter 的 +dateFormatFromTemplate:options:locale:
这是一些 Apple 示例代码:
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
NSLocale *gbLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
NSString *dateFormat;
NSString *dateComponents = @"yMMMMd";
dateFormat = [NSDateFormatter dateFormatFromTemplate:dateComponents options:0 locale:usLocale];
NSLog(@"Date format for %@: %@",
[usLocale displayNameForKey:NSLocaleIdentifier value:[usLocale localeIdentifier]], dateFormat);
dateFormat = [NSDateFormatter dateFormatFromTemplate:dateComponents options:0 locale:gbLocale];
NSLog(@"Date format for %@: %@",
[gbLocale displayNameForKey:NSLocaleIdentifier value:[gbLocale localeIdentifier]], dateFormat);
// Output:
// Date format for English (United States): MMMM d, y
// Date format for English (United Kingdom): d MMMM y
关于iphone - 如何确定语言环境的日期格式是月/日还是日/月?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135482/