快速格式化时间(iOS)

时间:2018-09-28 10:33:50

标签: swift

我正在使用以下代码在一行中格式化时间

let secondsFromGMT = 0
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
dateFormatter.timeZone = TimeZone(secondsFromGMT: secondsFromGMT)
print(dateFormatter.string(from: Date()))

输出如下

2018-09-28T10:27:05Z

我希望时区超过1分钟(例如)时格式不会与版本不同

2018-09-28T10:30:19+00:01

也就是说,我希望格式不缩写。是否可以在不更改手册的情况下做到这一点?

p.s。在iOS 10.3.1的模拟器上测试了功能TimeZone.current.secondsFromGMT(),该值是0,在iOS 12.0中是10800。这是模拟器问题吗?

1 个答案:

答案 0 :(得分:0)

@Larme提供了正确的答案,因此解决方案是:

let secondsFromGMT = 0
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssxxxxx"
dateFormatter.timeZone = TimeZone(secondsFromGMT: secondsFromGMT)
print(dateFormatter.string(from: Date()))

输出如下

2018-09-28T10:30:19+00:00