如何使用包含友好日期和月份的 DateFormatter 格式化日期

How to format date with DateFormatter that includes friendly day and month

如何格式化包含友好日期和月份文字的日期,例如:

"Thursday, June 14, 2018"

日期可以是:

Sunday, Monday, Tuesday, Wedenesday, Thursday, Friday, Saturday, Friday

月份可以是:

January, February, March, April, May, June, July, August, September, October, November, December

let formatter = DateFormatter()
formatter.dateFormat = format
return formatter.date(from: "Thursday, June 14, 2018")

格式应该设置成什么?

是这样的吗?

static let format = "DAY, MONTH, dd, YYYY"

甚至可以用 DateFormatter() 来做到这一点吗?

使用 EEEE 作为完整的工作日名称,使用 MMMM 作为完整的月份名称。但是由于您正在解析固定格式的英文字符串,因此还必须将格式化程序的语言环境设置为 en_US_POSIX.

let formatter = DateFormatter()
formatter.dateFormat = "EEEE, MMMM d, yyyy"
formatter.locale = Locale(identifier: "en_US_POSIX")
return formatter.date(from: "Thursday, June 14, 2018")

请注意,这会将日期视为用户的本地时区。

有关所有可能的日期格式模式,请参阅 full specification