UTCの日付をローカルの日付ではなくローカルの日付に変換したいとします。私はUTCの日付をローカルの日付(文字列)に変換しようとしましたが、現地の日付(文字列)から現地の日付に変換しようとしました。 UTC日付のみを返します。私は毎回タイムゾーンを与えようとしました。何も動作しません。誰かが私が間違っているアイデアを持っていれば、UTC即時のローカル日付
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値はinputDateStringFormatが ":MM:YYYY-MM-DD HH SS" です
- 偽であるUTCから
- は
- 真inputDateStringである「2017年です-07-18 04:45:00 "
- reqDateStringFormatは" yyyy-MM-dd HH:mm:ss "
「日付」は絶対時刻であり、タイムゾーンはありません。 "UTC Date"や "Local Date"などはありません。 –
resultStringを必須の日付形式に変換できますか? – Antony
*文字列*には書式があり、 'Date'には書式がありません。 - 本当に必要な情報で質問を更新してください。与えられた入力とは何か、そして期待される出力は何ですか? –