NSDate格式根据语言(地区)而变化



在我的应用程序(使用Swift 2)中,我有一个使用NSDate的函数,但我遇到了一个问题:根据设备上设置的语言,获得的日期不相同(例如,月份取决于语言:英语中的一月等于法语中的一月)

当我有这个:

NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: NSDateFormatterStyle.ShortStyle, timeStyle: NSDateFormatterStyle.NoStyle)

当我在美国本地化时,我得到的格式是3/29/16但例如,当我在法国本地化时,我会得到一种不同的格式:29/03/16

无论语言是什么,我怎么能要求相同的日期格式(这里是美国格式)?

使用这个,

let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = .ShortStyle
dateFormatter.timeStyle = .NoStyle
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")

具有相同格式的关键是始终使用相同的语言环境。因此,它使用英语区域设置来格式化字符串,因此它始终保持格式

M/d/yy

为此,您必须创建自己的日期格式化程序,如

let dateFormater = NSDateFormatter()
dateFormater.dateFormat = "MM/dd/yy"
let dt = dateFormater.stringFromDate(NSDate())

您可以从日期格式模式中阅读更多关于日期格式的信息

和日期格式编程指南

最新更新