2015-04-03 139 views
-1

我在這裏有一個簡單的問題,雖然有很多答案可用,但沒有一個滿足我的期望。iPhone日期24小時制

我想以24小時制格式檢索我的iPhone設備日期。我的iPhone時間設置爲12小時時間格式。

這裏是代碼,到目前爲止,我曾嘗試:

[formatter setLocale:[NSLocale autoupdatingCurrentLocale] ] ; 
NSLog(@"date string :%@", [formatter stringFromDate:[NSDate date]]) ; 
NSLog(@"Date string :%@\n\n", [formatter dateFromString:[formatter stringFromDate:[NSDate date]]]) ; 

[formatter setLocale:[NSLocale currentLocale] ] ; 
NSLog(@"Date string :%@", [formatter stringFromDate:[NSDate date]]) ; 
NSLog(@"Date string :%@\n\n", [formatter dateFromString:[formatter stringFromDate:[NSDate date]]]) ; 

[formatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"] ] ; 
NSLog(@"New date :%@", [formatter stringFromDate:[NSDate date]]) ; 
NSLog(@"Date string :%@\n\n", [formatter dateFromString:[formatter stringFromDate:[NSDate date]]]) ; 

[formatter setLocale:[NSLocale systemLocale] ] ; 
NSLog(@"Date string :%@", [formatter stringFromDate:[NSDate date]]) ; 
NSLog(@"New date :%@\n\n", [formatter dateFromString:[formatter stringFromDate:[NSDate date]]]) ; 

    formatter = [[NSDateFormatter alloc] init] ; 
[formatter setDateFormat:@"yyyy-MM-dd H:mm "] ; 
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:[[NSLocale currentLocale] localeIdentifier]]]; 

輸出:

2015-04-03 12:08:07.494 DateFormatter[4959:2280447] date string :2015-04-03 12:08 PM 
2015-04-03 12:08:07.503 DateFormatter[4959:2280447] Date string :2015-04-03 7:08:00 PM +0000 

2015-04-03 12:08:07.504 DateFormatter[4959:2280447] Date string :2015-04-03 12:08 PM 
2015-04-03 12:08:07.505 DateFormatter[4959:2280447] Date string :2015-04-03 7:08:00 PM +0000 

2015-04-03 12:08:07.510 DateFormatter[4959:2280447] New date :2015-04-03 12:08 
2015-04-03 12:08:07.511 DateFormatter[4959:2280447] Date string :2015-04-03 7:08:00 PM +0000 

2015-04-03 12:08:07.515 DateFormatter[4959:2280447] Date string :2015-04-03 12:08 
2015-04-03 12:08:07.516 DateFormatter[4959:2280447] New date :2015-04-03 7:08:00 PM +0000 

輸出包含上午或下午的標籤,當我從字符串轉換後的印刷日期。

當我的設備時間格式爲24小時時,此代碼適用於絕對路徑。

我已經用dateformatter中的「H」和「h」嘗試過了。

[formatter setDateFormat:@"yyyy-MM-dd H:mm "] ; 

[formatter setDateFormat:@"yyyy-MM-dd h:mm "] ; 

,還有更多conbinations :-(

我的要求是得到的日期格式爲2015年4月3日19時08分00秒+0000爲2015 - 04-03下午7時08分00秒+0000。

當我的設備時間格式在24小時後,我得到預期的日誌。

勒梅知道更多的澄清。

+0

可能重複【什麼是對付NSDateFormatter區域設置「功能」的最佳方式?](http://stackoverflow.com/questions/6613110/what-is-the-best-way-to -d-nsdateformatter-locale-feature) – 2015-04-03 19:37:05

+0

而且,當然,請參閱http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns格式標準。 – 2015-04-03 19:38:16

+0

您聲稱格式化的字符串都包含AM/PM,但事實並非如此。再看看你自己的數據。 – 2015-04-03 19:40:06

回答

0

我不能評論,因爲我是一個新手,但嘗試「HH:mm」(兩個HH's)。它一直爲我工作。

0

你可以試試這個!的

NSDate* datetime = [NSDate date]; 
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setTimeZone:[NSTimeZone defaultTimeZone]]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss +0000"]; 
NSString* dateTimeString = [dateFormatter stringFromDate:datetime];