日期(字符串)到 Swift 的日期 (ISO)
Date (String) to Date (ISO) at Swift
我知道类似的问题,但是,我找不到确切的问题:
在 iOS 申请中,我收到格式为 dd-MM-yyyy HH:mm:ss
的日期(即 30-07-2019 12:05:00)在 GMT +2h 中,我喜欢在 GMT ±0h 中将其转换为 yyyy-MM-dd HH:mm:ss +0000
(即 2019-07-30 10:05:00 +0000)。
我该怎么做?
首先创建2个DateFormatter。
从 dateString 创建日期的第一个 dateFormat。
从创建日期创建字符串的第二个日期格式。
代码:
let dateString = "30-07-2019 12:05:00"
let dateFormatForDate = DateFormatter()
dateFormatForDate.timeZone = TimeZone(abbreviation: "GMT+2")
dateFormatForDate.dateFormat = "dd-MM-yyyy HH:mm:ss"
//date
let date = dateFormatForDate.date(from: dateString)
let dateFormatForString = DateFormatter()
dateFormatForString.timeZone = TimeZone(abbreviation: "GMT")
dateFormatForString.dateFormat = "yyyy-MM-dd HH:mm:ss +0000"
//string
let formattedDateString = dateFormatForString.string(from: date!)
结果:
dateString: 30-07-2019 12:05:00
formattedDateString: 2019-07-30 09:05:00 +0000
extension Date {
func convert(_ from: TimeZone, toTimeZone: TimeZone) -> Date {
let delta = TimeInterval(toTimeZone.secondsFromGMT() - from.secondsFromGMT())
return addingTimeInterval(delta)
}
}
let dateFmt = DateFormatter()
dateFmt.timeZone = TimeZone(abbreviation: "GMT+2")
dateFmt.dateFormat = "dd-MM-yyyy HH:mm:ss"
if let date = dateFmt.date(from: "30-07-2019 12:05:00") {
let localDate = date.convert(TimeZone(abbreviation: "GMT+02")!, toTimeZone: TimeZone(abbreviation: "GMT+00")!)
}
我知道类似的问题,但是,我找不到确切的问题:
在 iOS 申请中,我收到格式为 dd-MM-yyyy HH:mm:ss
的日期(即 30-07-2019 12:05:00)在 GMT +2h 中,我喜欢在 GMT ±0h 中将其转换为 yyyy-MM-dd HH:mm:ss +0000
(即 2019-07-30 10:05:00 +0000)。
我该怎么做?
首先创建2个DateFormatter。 从 dateString 创建日期的第一个 dateFormat。 从创建日期创建字符串的第二个日期格式。
代码:
let dateString = "30-07-2019 12:05:00"
let dateFormatForDate = DateFormatter()
dateFormatForDate.timeZone = TimeZone(abbreviation: "GMT+2")
dateFormatForDate.dateFormat = "dd-MM-yyyy HH:mm:ss"
//date
let date = dateFormatForDate.date(from: dateString)
let dateFormatForString = DateFormatter()
dateFormatForString.timeZone = TimeZone(abbreviation: "GMT")
dateFormatForString.dateFormat = "yyyy-MM-dd HH:mm:ss +0000"
//string
let formattedDateString = dateFormatForString.string(from: date!)
结果:
dateString: 30-07-2019 12:05:00
formattedDateString: 2019-07-30 09:05:00 +0000
extension Date {
func convert(_ from: TimeZone, toTimeZone: TimeZone) -> Date {
let delta = TimeInterval(toTimeZone.secondsFromGMT() - from.secondsFromGMT())
return addingTimeInterval(delta)
}
}
let dateFmt = DateFormatter()
dateFmt.timeZone = TimeZone(abbreviation: "GMT+2")
dateFmt.dateFormat = "dd-MM-yyyy HH:mm:ss"
if let date = dateFmt.date(from: "30-07-2019 12:05:00") {
let localDate = date.convert(TimeZone(abbreviation: "GMT+02")!, toTimeZone: TimeZone(abbreviation: "GMT+00")!)
}