具体表现为:(以星期三,下午4点20分50秒为例)
1、当手机本身的是使用12小时制,那么代码
1. [tempDate setDateFormat:@"EEEE:hh:mm:ss:a"];//12小时制
返回的字符串是“Wensday:4:20:50:PM”;代码
1. [tempDate setDateFormat:@"EEEE:HH:mm:ss:a"];//24小时
返回的字符串是“Wensday:16:20:50:PM”;
2、当手机本身使用的是24小时制时,那么代码
1. [tempDate setDateFormat:@"EEEE:hh:mm:ss:a"];//12小时制
返回的字符串是“Wednesday:16:20:50:”;代码
1. [tempDate setDateFormat:@"EEEE:HH:mm:ss:a"];//24小时
返回的字符串也是“Wednesday:16:20:50:”;
可以看出,当手机本身使用的是24小时制时,foramt的“a”返回的是一个nil值,format的“hh”和“HH”返回的值是一样。
因此如果程序要显示12/24两种不同的格式时,要注意这个问题。(这个要在真机上才能测试出来)。
使用setDateFormat这个方法的好处在,获取到的星期和AM/PM会返回当前区域的语言。就是说,如果手机的“Region
Format”是“china”,那么Format的“a”会返回“上午”或者“下午”,format的“EEEE”会返回“星期一”(前提是手机使用
的是12小时制,而且setLocale:[NSLocale currentLocale])。