2

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

先感谢您。

4

7 回答 7

13

使用 NSDateFormatter,但设置样式(不是格式),使其使用用户的区域设置格式。

例如,创建一个 NSDateFormatter 并对其进行配置

[dateFormatter setDateStyle:NSDateFormatterShortStyle];

(对于 mm/dd/yy 类型的日期,在其他国家是 dd/mm/yy)

于 2009-09-03T08:53:09.850 回答
3

CFDateFormatter 定义了几种日期和时间格式样式——短、中、长和完整。它还定义了一种“无”样式,您可以使用它来抑制组件的输出。“使用日期格式样式”中说明了样式的使用。日期和时间样式没有指定确切的格式——它们取决于区域设置、用户首选项设置和操作系统版本。如果您想要精确的格式,请使用 CFDateFormatterSetFormat 函数更改格式字符串,如“使用日期格式字符串”中所示。</p>

CFDateFormatter

应该做的伎俩。

于 2009-04-25T12:46:22.443 回答
2

你真的想知道确切的格式,还是只是根据它在 NSDate 和 NSString 对象之间进行转换?如果是后者,那么 NSDateFormatter 就是你的人选,它会根据用户的喜好自动生成正确的格式。

于 2009-04-26T10:34:22.533 回答
2

以防万一您需要在格式化日期之前进行区域设置,您需要使用 NSLocale,如下所示:

NSLocale *locale = [NSLocale currentLocale];

这包含有关当前语言环境设置的大量信息 - 阅读文档以获取详细信息。

于 2009-09-03T09:03:33.867 回答
2

要知道用户喜欢哪种格式:我使用了 [[dateFormatter locale] localeIdentifier] 。如果它返回 en_US,则表示日期为 mm/dd/yyyy 格式,否则为 dd/mm/yyyy 格式。dateFormatter 是 NSDateFormatter 类的一个实例。

于 2009-09-30T13:42:18.210 回答
1

Vishwa,美国不是唯一使用“mm/dd/yyy”格式的国家,“dd/mm/yyyy”也不是唯一的选择。

有关更多信息,请参阅http://en.wikipedia.org/wiki/Calendar_date#List_of_the_world_locations_by_date_format_in_use

于 2010-01-22T01:03:20.730 回答
-1

从 iOS 6 开始,您可以使用“localizedStringFromDate”

NSString*localizedDate = [NSDateFormatter localizedStringFromDate:[NSDate date] dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterShortStyle];
于 2013-08-07T11:48:23.360 回答