使用 NSDateFormatter 的时间错误

wrong time using NSDateFormatter

我知道有几个关于这个的问题。但是我尝试了所有的建议,但时间仍然与我的真实设备的时间不匹配。

    let dater = NSDate()
    let dayTimePeriodFormatter = NSDateFormatter()
    dayTimePeriodFormatter.locale = NSLocale.currentLocale()
    dayTimePeriodFormatter.timeZone = NSTimeZone(name: "UTC")
    dayTimePeriodFormatter.dateFormat = "H:s" 
    var dateString = dayTimePeriodFormatter.stringFromDate(dater)

设备(实时)时间:22:11。日期字符串输出:00:36

有什么建议吗?谢谢!

正如 Nick 指出的那样,您正在使用 UTC 作为时区,您可以使用 NSTimeZone.systemTimeZone()

进入当地时区

您也可能并不真的打算只使用小时 (H) 和秒 (s)。您可能还需要分钟 (m)。尝试使用 "H:m:s"

的日期格式

更好的是,使用 "H:mm:ss",这将强制分和秒为两位数,而不是一位数,这样您就不会以“10:4:3”结束了[=11] =]

你试过了吗dayTimePeriodFormatter.dateFormat = "HH:mm"

Apple 使用固定互联网。查看 here 以查看一些示例。这可能会有帮助