मैं सर्वर यूटीसी समय को स्थानीय समय और वीजा-विपरीत में कनवर्ट करना चाहता हूं। यहाँ मेरी कोड है ..स्विफ्ट 3.0: सर्वर यूटीसी समय को स्थानीय समय में बदलें और वीजा-विपरीत
var isTimeFromServer = true
var time:String!
var period:String!
let timeString = "6:59 AM" //Current UTC time
if isTimeFromServer {
let index = timeString.index(timeString.startIndex, offsetBy: 5)
let twelve = timeString.substring(to: index)
var dateString:String!
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "H:mm"
let date12 = dateFormatter.date(from: twelve)!
dateFormatter.dateFormat = "h:mm a"
let date22 = dateFormatter.string(from: date12)
//print(date22)
dateString = date22
//print("dateString=\(dateString)")
time = dateString.components(separatedBy: " ")[0]
period = dateString.components(separatedBy: " ")[1]
}
else {
time = timeString.components(separatedBy: " ")[0]
period = timeString.components(separatedBy: " ")[1]
}
var hour = Int(time.components(separatedBy: ":")[0])
hour = period == "AM" ? hour : hour! + 12
let minute = Int(time.components(separatedBy: ":")[1])
let calender = NSCalendar.current
var datecomponent = DateComponents()
datecomponent.calendar = calender
datecomponent.hour = hour
datecomponent.minute = minute
if !isTimeFromServer {
// local to UTC
datecomponent.timeZone = TimeZone.current
}
else {
datecomponent.timeZone = TimeZone(abbreviation: "UTC")
}
let date = datecomponent.date
let dateFormatter = DateFormatter()
if !isTimeFromServer {
dateFormatter.dateFormat = "H:mm"
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
dateFormatter.string(from: date!)
}
else {
//UTC to local
dateFormatter.dateFormat = "h:mm a"
dateFormatter.timeZone = TimeZone.current
dateFormatter.string(from: date!)
}
मैं स्थानीय समय
ओ/p मिलती है: "12:52 PM"
लेकिन वास्तविक स्थानीय समय और उत्पादन समय का अंतर है 23 मिनट तो कृपया इसे हल करने में मदद करें। अग्रिम में धन्यवाद।
यह वही है जो मैं चाहता हूं .. धन्यवाद @ मुरुश। – NiravS
ग्रेट !!! धन्यवाद! – iDev750
एकमात्र गिरावट असुरक्षित है। इस समारोह के प्रत्येक पुनरावृत्ति के बारे में 0.23 मिलीसेकंड लगता है। हजारों तिथियों की तुलना करने के लिए यह असुरक्षित होगा – quemeful