iOS Swift4 怎样使用DateFormatter()打印星期的缩写?

8

我希望日期格式化器仅打印短的星期几标签,例如“Mon,Tue,Wed”。

将日期转换为3个字母的星期几字符串的正确日期格式是什么?

let formatter = DateFormatter()
formatter.dateFormat = "DDD" //prints 278 and like

5
这是日期格式模式的完整列表,您需要对其进行翻译并使其更加通俗易懂,但不要改变原意。例如,D代表"年中的天数"。 - vadian
简单易用的日期格式化工具:NSDateFormatter.com - MadProgrammer
3个回答

17

感觉每隔几个月就需要重新学习这些东西:

let formatter = DateFormatter()
formatter.dateFormat = "EEE"


E..EEE  Tue Abbreviated Day of week name, format style.
EEEE    Tuesday Wide
EEEEE   T   Narrow
EEEEEE  Tu  Short

1
如果这是一周中独立的一天,您不需要使用“EEE”,而应该使用“ccc”。只有在与较长的字符串一起使用时才使用“EEE”。请参见http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns或https://developer.apple.com/videos/play/wwdc2020/10160/。 - Rob

4
使用这个http://nsdateformatter.com来帮助你完成日期格式化的操作。
Monday, Oct 8, 2018 = EEEE, MMM d, yyyy

10/08/2018 = MM/dd/yyyy

10-08-2018 04:29 = MM-dd-yyyy HH:mm

Oct 8, 4:29 AM = MMM d, h:mm a

October 2018 = MMMM yyyy

Oct 8, 2018 = MMM d, yyyy

Mon, 8 Oct 2018 04:29:53 +0000 = E, d MMM yyyy HH:mm:ss Z

2018-10-08T04:29:53+0000 = yyyy-MM-dd'T'HH:mm:ssZ

08.10.18 = dd.MM.yy

3
一个非常常见的用例是从 Date 中获取工作日。
let weekdayIndex = Calendar.current.component(.weekday, from: Date()) - 1
let weekday = DateFormatter().shortWeekdaySymbols[weekdayIndex]
print(weekday)

// Outputs: Fri, Tue or whatever day is today

第一行的-1来自于Calendar.current.component(.weekday, from: Date())返回的范围是从1到7,而shortWeekdaySymbols期望的索引范围是从0到6。

请注意,如果您想获得其他格式,例如Friday而不是Fri,可以使用此处列出的其他方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接