2016-01-21 44 views
-1

時間格式獲得 「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

回答

1

手機的設置無關緊要。要獲得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。 –