美文网首页
时区转换

时区转换

作者: 啊俊吖 | 来源:发表于2018-07-25 09:34 被阅读18次

    通过Date获取的时间格式为格林时间,零时区时间
    通过DateFormatter转换的时间 为添加了与零时区差值的系统显示时间

     let formatter = DateFormatter()
     formatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
    
    (lldb) po Date()
    ▿ 2018-07-26 21:55:53 +0000
      - timeIntervalSinceReferenceDate : 554334953.136796
    
    (lldb) po formatter.string(from: Date())
    "2018-07-26 02:56:16"
    
    (lldb) po formatter.date(from: formatter.string(from: Date()))
    ▿ Optional<Date>
      ▿ some : 2018-07-26 09:56:51 +0000
        - timeIntervalSinceReferenceDate : 554291811.0
    

    DateFormatter每转换一次时间格式 都会添加一次添与零时区差值的
    有时
    我们需要转换时间格式后对应的时区不变 就需要对DateFormatter 添加对应的时区

    //创建时区 :零时区
    let timeZone = TimeZone.init(secondsFromGMT: 0)
    let timeZone = TimeZone(secondsFromGMT: 0)
    formatter.timeZone = timeZone!
    

    这样无论通过DateFormatter转换多少次格式都是零时区时间

    当需要系统时区的时间时 在重新设置下时区 即可

    let timeZone = TimeZone(secondsFromGMT: NSInteger(Date().timeIntervalSince1970))
    formatter.timeZone = timeZone!
    

    相关文章

      网友评论

          本文标题:时区转换

          本文链接:https://www.haomeiwen.com/subject/ddiumftx.html