gpt4 book ai didi

swift - 为什么 dateformatter.date() 默认返回 UTC?

转载 作者:搜寻专家 更新时间:2023-10-31 22:57:25 24 4
gpt4 key购买 nike

我对这种行为感到困惑:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss zzz"
let result = dateFormatter.date(from: "2017-04-12 12:12:12 GMT+1")!

2017-04-12 11:12:12 UTC

为什么结果会自动转换成UTC?如何获得相同的时区?

最佳答案

Date objects encapsulate a single point in time, independent of any particular calendrical system or time zone. Date objects are immutable, representing an invariant time interval relative to an absolute reference date.

在默认输出上设置 UTC 格式是一种国际标准。所有其他环境中的大多数系统/语言也使用这种默认数据类型处理时间。

您可以根据您的目的更改输入/输出的格式

let dateString = "Thu, 22 Apr 2017 00:28:17 +0000"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE, dd MMM yyyy hh:mm:ss +zzzz"
dateFormatter.locale = Locale.init(identifier: "en_GB")
let dateObj = dateFormatter.date(from: dateString)
dateFormatter.dateFormat = "dd-MM-yyyy"
print("Dateobj: \(dateFormatter.string(from: dateObj!))")

关于swift - 为什么 dateformatter.date() 默认返回 UTC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43552649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com