2017-03-21 1 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) 

잘 작동 : mm, 포름산하지만 & "오전 11시" "의 차이를 확인하고 싶습니다 1:00 PM "이므로 실패합니다. 그러니 제발 도와주세요. 미리 감사드립니다. 지역의 타임 스탬프 차이로 다음

답변

1

사용

let date = Date() 
let timeZoneOffset = Double(TimeZone.current.secondsFromGMT(for: date)) 
관련 문제