Swift 3.0:获取服务器 UTC 时间和本地时间之间的差异



我想了解服务器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"之间的差异,因此它失败了。所以请帮助我。提前谢谢。

使用以下内容与本地时间戳进行比较

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

最新更新