Swift 日期转换时间不同
Swift Date Conversion Not Same Time
我正在使用以下函数将字符串转换为日期,以便可以使用 DateFormatter 将其转换为不同的格式:
func changeDate(date1: String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
let date = dateFormatter.date(from:date1)!
let dateFormatter2 = DateFormatter()
dateFormatter2.dateFormat = "MMM-dd-yyyy / HH:mm zzz"
let finaldate = dateFormatter2.string(from: date)
return finaldate
}
我想要一个看起来像 2017-08-29T11:49:19
的字符串,并将 08/29/2017 07:49 EDT
显示为一个字符串。
Date
个对象表示一个绝对时间点。但是,使用 DateFormatter
生成的 Date
对象的字符串表示不代表绝对时间点,因此它们对应于特定时区。当您使用 DateFormatter
而未明确设置 TimeZone
时,它默认为用户的当前时区。
如果您想将输入字符串用作 UTC 时间戳,则需要在生成 Date
时将 DateFormatter
的 timeZone
设置为 UTC
目的。您应该将第二个 DateFormatter
的 timeZone
保留在用户的 timeZone
上,这是默认值。
func changeDate(date1: String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
guard let date = dateFormatter.date(from:date1) else return {""}
let outputDateFormatter = DateFormatter()
outputDateFormatter.dateFormat = "MMM-dd-yyyy / HH:mm zzz"
return outputDateFormatter.string(from: date)
}
我正在使用以下函数将字符串转换为日期,以便可以使用 DateFormatter 将其转换为不同的格式:
func changeDate(date1: String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
let date = dateFormatter.date(from:date1)!
let dateFormatter2 = DateFormatter()
dateFormatter2.dateFormat = "MMM-dd-yyyy / HH:mm zzz"
let finaldate = dateFormatter2.string(from: date)
return finaldate
}
我想要一个看起来像 2017-08-29T11:49:19
的字符串,并将 08/29/2017 07:49 EDT
显示为一个字符串。
Date
个对象表示一个绝对时间点。但是,使用 DateFormatter
生成的 Date
对象的字符串表示不代表绝对时间点,因此它们对应于特定时区。当您使用 DateFormatter
而未明确设置 TimeZone
时,它默认为用户的当前时区。
如果您想将输入字符串用作 UTC 时间戳,则需要在生成 Date
时将 DateFormatter
的 timeZone
设置为 UTC
目的。您应该将第二个 DateFormatter
的 timeZone
保留在用户的 timeZone
上,这是默认值。
func changeDate(date1: String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
guard let date = dateFormatter.date(from:date1) else return {""}
let outputDateFormatter = DateFormatter()
outputDateFormatter.dateFormat = "MMM-dd-yyyy / HH:mm zzz"
return outputDateFormatter.string(from: date)
}