【问题标题】:Not able to convert UTC time无法转换 UTC 时间
【发布时间】:2019-12-18 10:57:28
【问题描述】:

我正在从服务器获取字符串格式的 UTC 时间.."2019-12-18T10:58:40Z" 现在我想把它转换成当地时间。为此,我提到了this 链接。但它不起作用..

我想要实现的是将UTC时间转换为本地时间并根据该时间设置一个计时器。

这是我尝试过的..

var utcTime = "\(json["expirationDate"]!)"

self.dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
let date = self.dateFormatter.date(from: utcTime)
let utcDate = date?.toGlobalTime()
let localDate = utcDate?.toLocalTime()

但我得到的日期值为零..

【问题讨论】:

    标签: ios swift utc


    【解决方案1】:

    您的 UTC 日期字符串示例中没有毫秒。您的日期格式应该是

    self.dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
    

    【讨论】:

    • 谢谢@Pancho。现在当我打印localDate 时,我得到Optional(2019-12-18 05:48:06 +0000)。那么这是否意味着时间是下午 5:48..?
    • 应该是上午而不是下午,但您可以再次重新格式化,并获得适合您目的所需的任何日期格式。这只是为您打印日期对象的控制台。不确定使用什么日期格式。
    【解决方案2】:

    你必须改变这个格式 "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" 到 "yyyy-MM-dd'T'HH:mm:ss'Z'"**你必须

    let utcTime = "2019-12-18T10:58:40Z"
    let dateFormatter = DateFormatter.init()
    dateFormatter.timeZone = TimeZone(abbreviation: "UTC")!
    dateFormatter.locale = Locale(identifier: "en_US_POSIX")
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
    let date = dateFormatter.date(from: utcTime)
    print(date)
    

    【讨论】:

      猜你喜欢
      • 2012-08-29
      • 2021-07-13
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      • 2020-11-19
      • 1970-01-01
      相关资源
      最近更新 更多