如何从给定日期找到GMT

时间:2017-09-19 09:24:22

标签: ios swift date

我有一个像2017-08-12 11:30:00的日期,我想显示日期为 sat, 12 aug 2017 11:30 am( 06:00 GMT )我使用以下代码获取sat, 12 aug 2017 11:30 am

    let myDate = "2017-08-12 11:30:00"

    let date = myDate.date(format: .custom("yyyy-MM-dd HH:mm:ss"))
    let strDate = date?.string(format: .custom("EEE, dd MMM yyyy hh:mm a"))
    let localDate = strDate?.date(format: .custom("EEE, dd MMM yyyy hh:mm a"))
    let strLocalDate = localDate?.string(format: .custom("EEE, dd MMM yyyy hh:mm a"))

但我怎样才能找到GMT?

对于GMT我也试过formatter.timeZone = TimeZone(identifier:"GMT"),但它没有用。

请帮忙, 谢谢!

2 个答案:

答案 0 :(得分:1)

尝试此代码。我已经测试过,它在 swift3.0 中为我工作。

        let myDate = "2017-08-12 11:30:00"
        let localDateFormat = DateFormatter()
        localDateFormat.dateFormat = "YYYY-mm-dd hh:mm:ss"
        let localDate = localDateFormat.date(from: myDate)
        localDateFormat.dateFormat = "EEE, dd MMM yyyy hh:mm a"
        let myNewDate = localDateFormat.string(from: localDate!)
        print(myNewDate)
        //GMT Date
        let gmtDateFormat = DateFormatter()
        gmtDateFormat.dateFormat = "HH:mm a"
        gmtDateFormat.timeZone = NSTimeZone(abbreviation: "GMT")! as TimeZone
        let gmtDateString = gmtDateFormater.string(from: localDate!)
        print(gmtDateString)

        print("time:\(myNewDate)(\(gmtDateString))")

答案 1 :(得分:0)

你想用区域显示时间吗?如果是,则需要使用zzz格式。根据您的代码,请参阅代码。

        let strLocalDate = localDate?.string(format: .custom("EEE, dd MMM yyyy hh:mm a zzz"))

如果你有文字日期,那么你也需要设置时区。

formatter.timeZone = TimeZone(identifier: "GMT");

请让我知道答案,并举例说明设置时区