我使用以下函数将字符串转换为日期,以便可以使用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
显示为字符串。
答案 0 :(得分:2)
Date
个对象代表绝对时间点。但是,使用Date
生成的DateFormatter
个对象的字符串表示不代表绝对时间点,因此它们对应于特定时区。如果您使用DateFormatter
而未明确设置TimeZone
,则默认为用户的当前时区。
如果要将输入字符串用作UTC时间戳,则需要在生成timeZone
对象时将DateFormatter
的{{1}}设置为UTC
。您应该将第二个Date
的{{1}}保留在用户的timeZone
上,这是默认值。
DateFormatter