gpt4 book ai didi

ios - 如何正确使用时区

转载 作者:行者123 更新时间:2023-11-28 06:06:40 25 4
gpt4 key购买 nike

我在 Swift 4 for iOS 中有以下代码

    var dateComponents = DateComponents()
var datetime = Date()
dateComponents.timeZone = Calendar.current.timeZone
dateComponents.day = Calendar.current.component(.day, from: datetime)
dateComponents.month = Calendar.current.component(.month, from: datetime)
dateComponents.year = Calendar.current.component(.year, from: datetime)
dateComponents.hour = 12
dateComponents.minute = 45
datetime = Calendar.current.date(from: dateComponents)!
print(Calendar.current.timeZone)
print(datetime)

它产生这个输出:

欧洲/布拉格(当前)

2017-12-26 11:45:00 +0000

虽然我期待

2017-12-26 12:45:00 +0000

由于指定的时区。我必须做些什么不同的事情?谢谢。

最佳答案

2017-12-26 11:45:00 +0000 以 GMT/UTC/Zulu 格式显示日期(+0000 的含义)。最重要的是,布拉格 2017 年 12 月 26 日中午 12:45 是格林威治标准时间 11:45。

Datedescription 属性(如果您只是print Date,就会使用它)始终返回以 GMT 显示的字符串。如果您想在本地时区看到它,您可以使用日期格式化程序将日期转换为字符串,例如

let formatter = DateFormatter()
formatter.dateStyle = .medium
formatter.timeStyle = .medium
print(formatter.string(from: datetime))

最重要的是,如果您想在应用程序的用户界面中显示日期(您希望以本地时区显示日期),请始终使用日期格式化程序。与DateComponents一样,DateFormatter的时区默认为当前时区。

请注意,我避免使用 DateFormatterdateFormat 属性,因为每当在应用程序 UI 中显示日期字符串时,您都希望使用本地化字符串(显示在最终用户首选的格式,如“设置”应用中指定的那样)。实现此目的的最简单方法是使用 dateStyletimeStyle,如上所示。

关于ios - 如何正确使用时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47980829/

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