在我的iPhone应用程序中,我想确定用户的语言环境的日期格式是月/日(即1月5日为1/5)还是日/月(即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/

10-13 08:59