我正在尝试使用DateFormatter在字符串中转换Date对象,但我得到了一些奇怪的行为。我有一个时间戳值(1513356296),我想以24小时格式转换以及日期和时区(我当前是-0800)。这是我的代码:
let date = Date(timeIntervalSince1970: Double(1513356296))
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
dateFormatter.timeZone = TimeZone(secondsFromGMT: -(8*3600))
dateFormatter.locale = Locale.current
我希望结果值为2017-12-15T08:44:56-0800
,但我得到2017-12-15T8:44:56-0800
。除了小时值以外,一切都是一样的。小时值是8而不是08。
这并不是所有的测试都在讨价还价,它只发生在一台设备中,其余的都很好。
如果我将设备时间设置从24小时格式更改为12小时格式,我还尝试检查小时值是否发生变化,看看我得到的HH是什么,而且在我的情况下总是给我08。只有一个用户面临此问题。
我的代码出了什么问题?或者我正在使用的HH有什么问题吗?