如何在 Swift 4 中将日期格式化为特定格式?
How to format a Date to a specific format on Swift4?
我必须将 Date()
创建的对象格式化为特定格式,此格式必须显示日期,如:
28 may, 2018 11:00:32
我有一个函数来制作 Date()
的格式,但格式如下:
yyyy-MM-dd HH:mm:ss
函数工作:
static func dateFormatTime(date : Date) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
return dateFormatter.string(from: date)
}
但我不知道如何制作这种格式:dd MMM, yyyy HH:mm:ss
简单地说,您所要做的就是将 dateFormatter.dateFormat
值更改为所需的格式,即 "dd MMM, yyyy hh:mm:ss"在你的情况下:
func dateFormatTime(date : Date) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMM, yyyy hh:mm:ss"
return dateFormatter.string(from: date)
}
因此:
let str = dateFormatTime(date: Date())
print(str) // 29 May, 2018 12:18:08
时区:
您也可以像这样设置所需的时区:
dateFormatter.timeZone = TimeZone(identifier: "UTC")
更新:
感谢 @rmaddy for suggesting using date styles (dateStyle
and timeStyle
属性)而不是编辑日期格式。
When displaying a date to a user, you set the dateStyle
and timeStyle
properties of the date formatter according to your particular needs... Based on the values of the dateStyle
and timeStyle
properties, DateFormatter
provides a representation of a specified date that is appropriate for a given locale.
DateFormatter - Working With User-Visible Representations of Dates and Times.
因此:
func dateFormatTime(date : Date) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .long
dateFormatter.timeStyle = .medium
dateFormatter.timeZone = TimeZone(identifier: "UTC")
return dateFormatter.string(from: date)
}
let str = dateFormatTime(date: Date())
print(str) // May 29, 2018 at 12:45:08 AM
我必须将 Date()
创建的对象格式化为特定格式,此格式必须显示日期,如:
28 may, 2018 11:00:32
我有一个函数来制作 Date()
的格式,但格式如下:
yyyy-MM-dd HH:mm:ss
函数工作:
static func dateFormatTime(date : Date) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
return dateFormatter.string(from: date)
}
但我不知道如何制作这种格式:dd MMM, yyyy HH:mm:ss
简单地说,您所要做的就是将 dateFormatter.dateFormat
值更改为所需的格式,即 "dd MMM, yyyy hh:mm:ss"在你的情况下:
func dateFormatTime(date : Date) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMM, yyyy hh:mm:ss"
return dateFormatter.string(from: date)
}
因此:
let str = dateFormatTime(date: Date())
print(str) // 29 May, 2018 12:18:08
时区:
您也可以像这样设置所需的时区:
dateFormatter.timeZone = TimeZone(identifier: "UTC")
更新:
感谢 @rmaddy for suggesting using date styles (dateStyle
and timeStyle
属性)而不是编辑日期格式。
When displaying a date to a user, you set the
dateStyle
andtimeStyle
properties of the date formatter according to your particular needs... Based on the values of thedateStyle
andtimeStyle
properties,DateFormatter
provides a representation of a specified date that is appropriate for a given locale.DateFormatter - Working With User-Visible Representations of Dates and Times.
因此:
func dateFormatTime(date : Date) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .long
dateFormatter.timeStyle = .medium
dateFormatter.timeZone = TimeZone(identifier: "UTC")
return dateFormatter.string(from: date)
}
let str = dateFormatTime(date: Date())
print(str) // May 29, 2018 at 12:45:08 AM