我完全是Swift 2新手并且遇到了日期格式化问题。
我的系统设置为“瑞士德语”,日期格式应格式为“25。2015年11月19:25:56”
但是,playground的结果侧栏显示“2015年11月25日,下午7:25”:日期格式化美国风格和AM / PM而不是24小时格式。
我试过
var myDate = NSDate()
print("date string:",myDate)
print(myDate.description) // no ouput
输出:
date string: 2015-11-25 18:21:58 +0000
2015-11-25 18:21:58 +0000
和
// How to check which locale Swift 2 is using?
我真的很感激任何帮助!
谢谢, 罗兰
答案 0 :(得分:0)
我不知道如何强制Playground环境使用您的语言环境,但您可以在自己的代码中执行此操作。
import Foundation
print(NSDate())
print(NSDate().descriptionWithLocale(NSLocale(localeIdentifier: "zh_TW")))
print(NSDate().descriptionWithLocale(NSLocale(localeIdentifier: "de_DE")))
...输出是......
2015-11-25 19:24:53 +0000
2015年11月25日 星期三 中歐標準時間 下午8:24:53
Mittwoch, 25. November 2015 um 20:24:53 Mitteleuropäische Normalzeit
... 检查NSDateFormatter以获取更多信息
答案 1 :(得分:0)
如果您只是打印日期,它将在" debug"模式,不会应用区域设置或时区。
以所需格式获取日期的正确方法是使用NSDateFormatter。然后,您可以应用时区和格式或区域设置。
import Foundation
var myDate = NSDate()
print(myDate.description)
let formatter = NSDateFormatter()
formatter.timeZone = NSTimeZone.localTimeZone()
formatter.dateFormat = "dd'.' MMM'.' yyyy HH':'mm':'ss"
print(formatter.stringFromDate(myDate))
以上打印
2015-11-26 11:55:55 +0000
26. Nov. 2015 11:55:55
我在英国。如果我将我的电脑设置为中欧时间,我会
2015-11-26 11:59:51 +0000
26. Nov. 2015 12:59:51