在 swift 中格式化时间 (iOS)



我使用以下代码将时间格式化为一行

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。这是模拟器问题吗?

@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

最新更新