2017-03-21 23 views
1

サーバーのUTC時刻と現地時刻の差を取得します。時間はHHのときに私はここにいくつかのコードを書く ..コードのこのコードの時間間隔チャンクでSwift 3.0:サーバーの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) 

は正常に動作します:ミリメートルメート、しかし、私は&「11:00 AM」 "の違いをチェックしたいと思います1:00 PM "だから失敗する。だから私を助けてください。前もって感謝します。ローカルタイムスタンプとの差分に、次の

答えて

1

使用

let date = Date() 
let timeZoneOffset = Double(TimeZone.current.secondsFromGMT(for: date)) 
関連する問題