在 Swift 中将 UTC 转换为 EST
Converting UTC to EST in Swift
我的应用程序中有一串文本,用于传达时间和日期,例如 let time = "2017-07-09T09:17:08+00:00"
。我想获取这个采用 UTC 格式的字符串,并将其转换为以 EST 格式显示时间的字符串。对于我的示例,生成的字符串将是 2017-07-09T05:17:08+00:00
。如何做到这一点?
我试过使用
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
dateFormatter.timeZone = TimeZone.current
let date = dateFormatter.date(from:time!)!
但是打印日期给我的是 UTC 时间。
您需要做的就是使用 DateFormatter
将您的 Date
对象转换为 String
。默认情况下,日期将被格式化为当地时间。
// First, get a Date from the String
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let date = dateFormatter.date(from:time!)!
// Now, get a new string from the Date in the proper format for the user's locale
dateFormatter.dateFormat = nil
dateFormatter.dateStyle = .long // set as desired
dateFormatter.timeStyle = .medium // set as desired
let local = dateFormatter.string(from: date)
请注意,在这种情况下,无需为任何一组代码设置任何时区。
我的应用程序中有一串文本,用于传达时间和日期,例如 let time = "2017-07-09T09:17:08+00:00"
。我想获取这个采用 UTC 格式的字符串,并将其转换为以 EST 格式显示时间的字符串。对于我的示例,生成的字符串将是 2017-07-09T05:17:08+00:00
。如何做到这一点?
我试过使用
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
dateFormatter.timeZone = TimeZone.current
let date = dateFormatter.date(from:time!)!
但是打印日期给我的是 UTC 时间。
您需要做的就是使用 DateFormatter
将您的 Date
对象转换为 String
。默认情况下,日期将被格式化为当地时间。
// First, get a Date from the String
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let date = dateFormatter.date(from:time!)!
// Now, get a new string from the Date in the proper format for the user's locale
dateFormatter.dateFormat = nil
dateFormatter.dateStyle = .long // set as desired
dateFormatter.timeStyle = .medium // set as desired
let local = dateFormatter.string(from: date)
请注意,在这种情况下,无需为任何一组代码设置任何时区。