我想將UTC日期轉換爲本地日期而不是本地字符串。我試圖從UTC日期轉換到本地日期(在字符串)再次,然後我試圖從本地日期(字符串)轉換到本地日期。它僅返回UTC日期。我甚至嘗試每次都給時區。什麼都沒有如果有人有想法,我哪裏錯了?UTC日期到當地日期在swift
let dateFormator = DateFormatter()
dateFormator.dateFormat = inputDateStringFormat
if fromUTC {
dateFormator.timeZone = TimeZone(abbreviation: "UTC")
} else {
dateFormator.timeZone = TimeZone.current
}
let resultDate = dateFormator.date(from: inputDateString)
dateFormator.dateFormat = reqDateStringFormat
if toUTC {
dateFormator.timeZone = TimeZone(abbreviation: "UTC")
} else {
dateFormator.timeZone = TimeZone.current
}
guard let dateToConvert = resultDate else { return nil }
let resultString = dateFormator.string(from: dateToConvert)
let finalDateFormater = DateFormatter()
finalDateFormater.dateFormat = reqDateStringFormat
if toUTC {
finalDateFormater.timeZone = TimeZone(abbreviation: "UTC")
} else {
finalDateFormater.timeZone = TimeZone.current
}
if let requiredDate = finalDateFormater.date(from: resultString) {
return requiredDate
} else {
return nil
}
FYC:
- toUTC值爲false
- inputDateStringFormat爲 「YYYY-MM-DD HH:MM:SS」 從UTC
- 爲真
- inputDateString是「2017年-07-18 04:45:00「
- reqDateStringFormat is」yyyy-MM-dd HH:mm:ss「
'日期'是一個絕對時間點,沒有時區。沒有「UTC日期」或「本地日期」之類的東西。 –
我可以將resultString轉換爲所需的日期格式嗎? – Antony
A * string *有格式,'Date'沒有。 - 請使用您真正需要的信息更新問題。什麼是給定的輸入,什麼是預期的輸出? –