iPhone - 如何获取用户的日期格式

时间:2009-04-25 12:38:13

标签: iphone cocoa-touch locale

我如何知道用户喜欢的日期格式?有没有办法从手机的本地设置中读取它?用户是否更喜欢以“dd / mm / yyyy”或“mm / dd / yyyy”格式阅读日期?

提前谢谢。

7 个答案:

答案 0 :(得分:13)

使用NSDateFormatter,但设置样式(不是格式),以便它使用用户的语言环境格式。

e.g。创建一个NSDateFormatter并进行配置

[dateFormatter setDateStyle:NSDateFormatterShortStyle];

(对于mm / dd / yy类型日期,在其他国家/地区为dd / mm / yy)

答案 1 :(得分:3)

  

CFDateFormatter定义了几个日期   和时间格式样式 - 短,中,   漫长而充实。它还定义了一个   你可以使用的“无”风格   抑制组件的输出。该   “使用”中说明了样式的使用   日期格式样式。“日期和时间   样式没有指定精确   格式 - 它们取决于语言环境,   用户首选项设置,以及   操作系统版本。如果你想   一个确切的格式,使用   CFDateFormatterSetFormat函数来   更改格式字符串,如图所示   “使用日期格式字符串。”

CFDateFormatter

应该做的伎俩。

答案 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];