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