如何将日期/时间从格林尼治标准时间转换为本地时区

时间:2019-07-18 13:54:56

标签: swift dateformatter

我从JSON响应中获取日期时间字符串,如下所示:

2019-07-18 13:39:05

这次是格林尼治标准时间。如何将其转换为语言环境时区,在我的情况下是东部夏令时。

func convertDateFormat(date:String) -> String {

    let dateFormatterGet = DateFormatter()
    dateFormatterGet.dateFormat = "yyyy-MM-dd HH:mm:ss"

    let dateFormatterPrint = DateFormatter()
    dateFormatterPrint.dateStyle = .long
    dateFormatterPrint.timeStyle = .short

    let date = dateFormatterGet.date(from: date)

    return dateFormatterPrint.string(from: date!)

}

在上面的代码中,结果应为July 18, 2019 at 9:39 AM

谢谢

1 个答案:

答案 0 :(得分:1)

输入的内容是格林尼治标准时间的固定格式的日期字符串,因此dateFormatterGet必须具有

示例:

let dateFormatterGet = DateFormatter()
dateFormatterGet.locale = Locale(identifier: "en_US_POSIX")
dateFormatterGet.timeZone = TimeZone(secondsFromGMT: 0)
dateFormatterGet.dateFormat = "yyyy-MM-dd HH:mm:ss"

其他所有操作都应该没问题:您没有为dateFormatterPrint设置时区,以便使用用户的时区。