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

Posted

技术标签:

【中文标题】如何使用包含友好日期和月份的 DateFormatter 格式化日期【英文标题】:How to format date with DateFormatter that includes friendly day and month 【发布时间】:2018-06-07 14:38:21 【问题描述】:

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

“2018 年 6 月 14 日,星期四”

一天可以是:

周日、周一、周二、周三、周四、周五、周六、 星期五

月份可以是:

一月、二月、三月、四月、五月、六月、七月、八月、九月、 十月、十一月、十二月

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

格式应该设置成什么?

这样的?

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

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

【问题讨论】:

【参考方案1】:

使用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 了解所有可能的日期格式模式。

【讨论】:

以上是关于如何使用包含友好日期和月份的 DateFormatter 格式化日期的主要内容,如果未能解决你的问题,请参考以下文章

js date日期 英文月份

dateformat-参数表

如何在 jQuery UI 日期选择器中获取日期、月份、年份?

DateFormat的使用方法有哪些?

昨天如何从Date()中提取今天,并将其定位为工作日和月份?

如何在包含单词、三个字母月份和两位数字年份的字符串中搜索月份和年份并将它们转换为 SQL 中的日期?