您如何以这种格式显示日期? “ 2018年7月18日上午10:02”

时间:2018-07-30 22:28:29

标签: swift date dateformatter

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "UTC")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let date = dateFormatter.date(from: "2018-07-18T17:02:02.614Z")

日期描述打印:2015-06-18 17:02:02 +0000 操场似乎很自然地在右侧输出:“ 2015年6月18日,上午10:02”

如何格式化它以显示此内容? “ 2018年7月18日,上午10:02”

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要使用另一个date格式化Date(现在是DateFormatter实例)。并且您应该使用日期和时间样式,而不是固定的格式。

“ UTC”不是语言环境,而是时区。但是您不需要。但是,在解析固定格式的日期字符串时,应使用en_US_POSIX的特殊语言环境。

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let date = dateFormatter.date(from: "2018-07-18T17:02:02.614Z")
if let date = date {
    let outputFormatter = DateFormatter()
    outputFormatter.dateStyle = .medium
    outputFormatter.timeStyle = .short
    let output = outputFormatter.string(from: date)
    print(output)
}

输出:

  

2018年7月18日上午11:02

请注意,时间将取决于您当地的时区。默认情况下,输出将以本地时间为准,因此不要期望输出为17:02,因为这是UTC时区中的时间。