我有 yyyy-MM-ddTHH:mm:ssZ 格式的CEST日期。我想以本地格式显示它们。以下功能正常。它正确显示时间。 但最后我被迫以“dd.MM.yyyy HH:mm”格式显示日期。如何从iOS获取本地/本机DateFormat。
func changeTime()
{
myLabel.text = convertTimeZoneToLocal(timeZone: "CEST", date: "2017-09-27T18:25:42Z")
}
func convertTimeZoneToLocal(timeZone:String, date:String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
dateFormatter.timeZone = TimeZone(abbreviation: timeZone)
let dt = dateFormatter.date(from: date)
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = "dd.MM.yyyy HH:mm" // I want to change this line.
return dateFormatter.string(from: dt!)
}
答案 0 :(得分:2)
您可以使用:
dateFormatter.dateStyle = .short
dateFormatter.timeStyle = .short
但这些格式不会采用相同的格式dd.MM.yyyy HH:mm
答案 1 :(得分:1)
// create dateFormatter with UTC time format
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
dateFormatter.timeZone = NSTimeZone(name: "UTC")
let date = dateFormatter.dateFromString("2015-04-01T11:42:00")// create date from string
// change to a readable time format and change to local time zone
dateFormatter.dateFormat = "EEE, MMM d, yyyy - h:mm a"
dateFormatter.timeZone = NSTimeZone.localTimeZone()
let timeStamp = dateFormatter.stringFromDate(date!)
答案 2 :(得分:0)
使用它来获取基于所选操作系统区域的甲酸盐
let dateformatter = DateFormatter()
dateformatter.setLocalizedDateFormatFromTemplate("dd/MM/yyyy")
let strDate = dateformatter.string(from: NSDate() as Date)
<块引用>
输出: 操作系统区域为美国:18/02/2021
操作系统区域为美国:02/18/2021