【问题标题】:Swift 3.0: Get the difference between server UTC time & Local timeSwift 3.0:获取服务器 UTC 时间和本地时间之间的差异
【发布时间】:2017-03-21 07:58:46
【问题描述】:

我想了解服务器 UTC 时间和本地时间之间的差异。 我在这里写了一些代码..

var localTime:String!

var timeString:String = "06:05:00" //This is server UTC time
let dateFormator = DateFormatter()
dateFormator.dateFormat = "H:mm:ss"
dateFormator.timeZone = TimeZone(abbreviation: "UTC")

let dt = dateFormator.date(from: timeString)
if dt != nil {
    dateFormator.timeZone = TimeZone.current
    dateFormator.dateFormat = "h:mm a"
    localTime = dateFormator.string(from: dt!) //Converted current local time
}

let date = Date()
let dateFormatter2 = DateFormatter()
dateFormatter2.dateFormat = "h:mm a"
let timeStr = dateFormatter2.string(from: date)// Current time

let date1 = dt!
let date2 = dateFormatter2.date(from: timeStr)!

var _date1:String =  localTime
var _date2:String =  timeStr
//TODO: Remove the bellow two line and Comment *Line: 1 , Uncomment *Line: 2
//_date1 =  "11:00"
//_date2 =  "12:00"


let _dateFormatter = DateFormatter()
_dateFormatter.dateFormat = "HH:mm a" //*Line: 1
//_dateFormatter.dateFormat = "HH:mm" //*Line: 2
let date3 = _dateFormatter.date(from: _date1)
let date4 = _dateFormatter.date(from: _date2)

let _interval = date4!.timeIntervalSince(date3!)
let intervalInInt = Int(_interval)
let minutes3 = Int((_interval / 60).truncatingRemainder(dividingBy: 60))
let hours3 = Int((_interval / 3600))
String(format: "%02d:%02d", hours3, minutes3)

在此代码中,当时间为 HH:mm 格式时,代码的时间间隔块可以正常工作,但我想检查“11:00 AM”和“1:00 PM”之间的差异,所以它失败了。所以请帮助我。提前致谢。

【问题讨论】:

    标签: swift swift3 nsdate nsdateformatter


    【解决方案1】:

    使用以下来区分本地时间戳

    let date = Date()
    let timeZoneOffset = Double(TimeZone.current.secondsFromGMT(for: date))
    

    【讨论】:

      猜你喜欢
      • 2017-08-05
      • 2012-02-28
      • 1970-01-01
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 2017-05-31
      • 1970-01-01
      • 2012-09-23
      相关资源
      最近更新 更多