我是 iOS 开发新手,作为一名 Android 开发人员,我习惯使用一个对象来保存给定时区的日期时间(来自 Joda-Time 库)。
阅读有关日期和时间的 iOS 文档 (https://developer.apple.com/documentation/foundation/dates_and_times) 后,我仍然对应该使用哪个类来保存日期时间存有疑问。给定 Date/NSDate
类描述“一个特定的时间点,独立于任何日历或时区。”它看起来非常无用,因为它与时区无关,并且没有时区的时间没有任何意义,因为它没有任何上下文。
我真正的问题(TL;DR):
我有一个数据库,其中日期时间以 UTC 格式存储,如 "yyyy-MM-dd hh:mm:ss"。我想用某种 DateFormatter 初始化一个对象(格式为“yyyy-MM-dd hh:mm:ss”的字符串)加上时区(UTC)以轻松转换为我想要的任何时区(以显示给用户的默认时区时间)。我怎样才能在 iOS 中实现这一点?
编辑:假设我有一个带有标题和开始时间的类事件。标题是一个字符串,开始时间应该是什么?
最佳答案
您使用 DateFormatter
为此。
let formatter = DateFormatter()
formatter.calendar = Calendar(identifier: .iso8601)
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.locale
设置用户的当前区域设置,formatter.dateFormat
设置所需的日期格式。在您的情况下yyyy-MM-dd HH:mm:ss
。
简单地调用它:
let utcDateFromServer = "2017-01-01 22:10:10"
let date = formatter.date(from: utcDateFromServer)
关于ios - 如何在 iOS 中保存带时区的日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46995219/