我如何知道用户喜欢什么日期格式?有没有办法从手机的本地设置中读取它?用户是否喜欢以“dd/mm/yyyy”或“mm/dd/yyyy”格式读取日期?
先感谢您。
我如何知道用户喜欢什么日期格式?有没有办法从手机的本地设置中读取它?用户是否喜欢以“dd/mm/yyyy”或“mm/dd/yyyy”格式读取日期?
先感谢您。
使用 NSDateFormatter,但设置样式(不是格式),使其使用用户的区域设置格式。
例如,创建一个 NSDateFormatter 并对其进行配置
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
(对于 mm/dd/yy 类型的日期,在其他国家是 dd/mm/yy)
CFDateFormatter 定义了几种日期和时间格式样式——短、中、长和完整。它还定义了一种“无”样式,您可以使用它来抑制组件的输出。“使用日期格式样式”中说明了样式的使用。日期和时间样式没有指定确切的格式——它们取决于区域设置、用户首选项设置和操作系统版本。如果您想要精确的格式,请使用 CFDateFormatterSetFormat 函数更改格式字符串,如“使用日期格式字符串”中所示。</p>
应该做的伎俩。
你真的想知道确切的格式,还是只是根据它在 NSDate 和 NSString 对象之间进行转换?如果是后者,那么 NSDateFormatter 就是你的人选,它会根据用户的喜好自动生成正确的格式。
以防万一您需要在格式化日期之前进行区域设置,您需要使用 NSLocale,如下所示:
NSLocale *locale = [NSLocale currentLocale];
这包含有关当前语言环境设置的大量信息 - 阅读文档以获取详细信息。
要知道用户喜欢哪种格式:我使用了 [[dateFormatter locale] localeIdentifier] 。如果它返回 en_US,则表示日期为 mm/dd/yyyy 格式,否则为 dd/mm/yyyy 格式。dateFormatter 是 NSDateFormatter 类的一个实例。
Vishwa,美国不是唯一使用“mm/dd/yyy”格式的国家,“dd/mm/yyyy”也不是唯一的选择。
有关更多信息,请参阅http://en.wikipedia.org/wiki/Calendar_date#List_of_the_world_locations_by_date_format_in_use。
从 iOS 6 开始,您可以使用“localizedStringFromDate”
NSString*localizedDate = [NSDateFormatter localizedStringFromDate:[NSDate date] dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterShortStyle];