AM/PM不是从NSDateFormatter

问题描述:

时间格式获得 “YYYY-MM-DD HH:MM一” 通常给出的日期字符串像2016年1月22日13:01 PMAM/PM不是从NSDateFormatter

但我没有得到AM/PM部分,当设备上的24小时打开并使用以下代码(即使用不同的时区)时。 为下面的代码的结果是2016年1月22日13:01

NSDateFormatter* estDf = [[NSDateFormatter alloc] init]; 
[estDf setTimeZone:[NSTimeZone timeZoneWithName:@"EST"]]; 
estDf setDateFormat:@"yyyy-MM-dd hh:mm a"]; 
NSString *timeStr = [estDf stringFromDate:[NSDate date]]; 

但我可以得到AM/PM部分即使24小时为ON器件和使用下面的代码(即使用设备时区)。 为下面的代码的结果是2016年1月22日13:01 PM

NSDateFormatter *dateformat = [[NSDateFormatter alloc] init]; 
[dateformat setDateFormat:@"yyyy-MM-dd hh:mm a"]; 
NSString * timeStr = [dateformat stringFromDate:[NSDate date]]; 

我的问题是我在第一个代码段做在这个问题相处的日期字符串

AM/PM部分
+0

什么问题? – matt

+0

用你得到的实际输出更新你的问题。 – rmaddy

手机的设置无关紧要。要获得AM/PM格式的时间,您需要使用hh:mm,以24小时制格式存储时间,则需要使用HH:mm格式。

只需使用大写字母H即可告诉格式在24h和12h格式之间切换。

此外格式字符串中的a将显示AM/PM。

+0

我不认为你理解这个问题(或者我不知道)。我认为OP根据他们使用的格式需要12小时的AM/PM时间。我认为这个问题是为什么它在第二位代码中正常工作,而不是第一位。 – rmaddy

+0

在一些当地的12和24小时制格式很重要。即在美国本地,如果格式为24小时,则无法获得AM/PM。 –