如何使用swift获取Local DateFormat?

时间:2017-09-27 21:49:26

标签: swift xcode date timezone

我有 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!)
}

3 个答案:

答案 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