如何确定区域设置的日期格式是月/日还是日/月? [英] How to determine if locale's date format is Month/Day or Day/Month?
问题描述
在我的iPhone应用程序中,我希望能够确定用户的区域设置的日期格式是月/日(即1月5日的1/5)还是日/月(即1月5日的5/1)。我有一个自定义 NSDateFormatter
,它不使用基本格式之一,如 NSDateFormatterShortStyle
(11/23/37) 。
In my iPhone app, I'd like to be able to determine if the user's locale's date format is Month/Day (i.e. 1/5 for January fifth) or Day/Month (i.e. 5/1 for January fifth). I have a custom NSDateFormatter
which does not use one of the basic formats such as NSDateFormatterShortStyle
(11/23/37).
在一个理想的世界里,我想使用NSDateFormatterShortStyle,但只是不显示年份(只有月份和日期#)。实现这个目标的最佳方法是什么?
In an ideal world, I want to use NSDateFormatterShortStyle, but just not display the year (only month & day#). What's the best way to accomplish this?
推荐答案
你想使用NSDateFormatter的+ dateFormatFromTemplate:options:locale:
You want to use NSDateFormatter's +dateFormatFromTemplate:options:locale:
以下是一些Apple示例代码:
Here is some Apple sample code:
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
这篇关于如何确定区域设置的日期格式是月/日还是日/月?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!