swift NSDateFormatter无法正常工作

时间:2014-09-04 04:05:31

标签: ios swift nsdate nsdateformatter

我试图按如下方式格式化时间:

let formatter = NSDateFormatter()
formatter.dateFormat = "hh_mm_ss"
let d = formatter.stringFromDate(NSDate())
println("formatted text is: \(d)")

假设当前时间是2014年9月3日22:15:30

  1. 当我在操场上运行此脚本时,它会打印正确格式化的时间:22_15_30
  2. 在AppDelegate上运行时,它不会打印格式化的时间:22:15:30
  3. 我正在使用xcode 6 beta 5 ...我错过了什么吗?为什么stringFromDate没有返回格式化的正确日期?

    编辑:我正在使用xcode 6 beta 6。

    谢谢!

1 个答案:

答案 0 :(得分:7)

24小时格式是“HH”,而不是“hh”。

它在Playground 中工作的原因可能是 用户定义的设置可以覆盖12/24格式的选择,比较 What is the best way to deal with the NSDateFormatter locale "feechur"?。 为安全起见,请为日期格式化程序设置“en_US_POSIX”语言环境:

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

// Swift 3:
formatter.locale = Locale(identifier: "en_US_POSIX")