NSDate格式更改取决于语言(区域)

时间:2016-03-29 11:44:46

标签: swift swift2 nsdate foundation

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

当我有这个:

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

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

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

2 个答案:

答案 0 :(得分:5)

使用此,

let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = .ShortStyle
dateFormatter.timeStyle = .NoStyle

dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")

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

M/d/yy

答案 1 :(得分:2)

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

import urllib

def download_an_image(image_url):

    filename = 'glitch.jpg'
    urllib.urlretrieve(image_url, filename)

    return filename

您可以从Date Format Patterns

了解有关日期格式的更多信息

Date Formatting Programming Guide