objc-nsdate-formatter¶
当 NSDateFormatter
用于将 NSDate
类型转换为 String
类型时,用户可以指定自定义格式字符串。某些格式说明符尽管合法,但并不理想。有关所有合法日期模式的信息,请参见 http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns。
此检查器将日期格式说明符中的以下字符串模式报告为警告
yyyy + ww : 指定了年历年中的周数(除非也指定了 YYYY)。
- 示例 1:输入日期:2014 年 12 月 29 日;格式字符串:yyyy-ww;输出字符串:2014-01(错误,因为这不是 2014 年的第一周)
- 示例 2:输入日期:2014 年 12 月 29 日;格式字符串:dd-MM-yyyy (ww-YYYY);输出字符串:29-12-2014 (01-2015)(这是正确的)
F without ee/EE : 不带实际日期的月份中的星期几的数字。
- 示例:输入日期:2014 年 12 月 29 日;格式字符串:F-MM;输出字符串:5-12(错误,因为在英语中它读作12 月的第 5 个 ___)
F without MM : 不带月份的月份中的星期几的数字。
- 示例:输入日期:2014 年 12 月 29 日;格式字符串:F-EE输出字符串:5-Mon(错误,因为在英语中它读作___ 的第 5 个星期一)
WW without MM : 不带月份的月份中的周数。
- 示例:输入日期:2014 年 12 月 29 日;格式字符串:WW-yyyy输出字符串:05-2014(错误,因为在英语中它读作___ 的第 5 周)
YYYY + QQ : 指定了年历年中的季度(除非也指定了 yyyy)。
- 示例 1:输入日期:2014 年 12 月 29 日;格式字符串:YYYY-QQ输出字符串:2015-04(错误,因为这不是 2015 年的第 4 季度)
- 示例 2:输入日期:2014 年 12 月 29 日;格式字符串:ww-YYYY (QQ-yyyy)输出字符串:01-2015 (04-2014)(这是正确的)
YYYY + MM : 指定了年历年中的月份(除非也指定了 yyyy)。
- 示例 1:输入日期:2014 年 12 月 29 日;格式字符串:YYYY-MM输出字符串:2015-12(错误,因为这不是 2015 年的第 12 个月)
- 示例 2:输入日期:2014 年 12 月 29 日;格式字符串:ww-YYYY (MM-yyyy)输出字符串:01-2015 (12-2014)(这是正确的)
YYYY + DD : 年历年中的天数与周年的组合(除非也指定了 yyyy)。
- 示例 1:输入日期:2014 年 12 月 29 日;格式字符串:YYYY-DD输出字符串:2015-363(错误,因为这不是 2015 年的第 363 天)
- 示例 2:输入日期:2014 年 12 月 29 日;格式字符串:ww-YYYY (DD-yyyy)输出字符串:01-2015 (363-2014)(这是正确的)
YYYY + WW : 年历年中的周数与周年的组合(除非也指定了 yyyy)。
- 示例 1:输入日期:2014 年 12 月 29 日;格式字符串:YYYY-WW输出字符串:2015-05(错误,因为这不是 2015 年的第 5 周)
- 示例 2:输入日期:2014 年 12 月 29 日;格式字符串:ww-YYYY (WW-MM-yyyy)输出字符串:01-2015 (05-12-2014)(这是正确的)
YYYY + F : 年历月中的星期几与周年的组合(除非也指定了 yyyy)。
- 示例 1:输入日期:2014 年 12 月 29 日;格式字符串:YYYY-ww-F-EE输出字符串:2015-01-5-Mon(错误,因为这不是 2015 年 1 月的第 5 个星期一)
- 示例 2:输入日期:2014 年 12 月 29 日;格式字符串:ww-YYYY (F-EE-MM-yyyy)输出字符串:01-2015 (5-Mon-12-2014)(这是正确的)