NiravS
NiravS

Reputation: 1282

Swift 3.0: Get the difference between server UTC time & Local time

I want to get the difference between server UTC time and Local time. I write some code here..

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)

In this code time interval chunk of code works fine when time is in HH:mm formate, But I would like to check difference between "11:00 AM" & "1:00 PM" so it's fails. So please help me. Thanks in advance.

Upvotes: 3

Views: 1985

Answers (1)

Phani Sai
Phani Sai

Reputation: 1233

Use following to difference with local timestamp

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

Upvotes: 4

Related Questions