我在这里有一个简单的问题,虽然有很多答案可用,但没有一个满足我的期望。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小时后,我得到预期的日志。
勒梅知道更多的澄清。
可能重复【什么是对付NSDateFormatter区域设置“功能”的最佳方式?](http://stackoverflow.com/questions/6613110/what-is-the-best-way-to -d-nsdateformatter-locale-feature) – 2015-04-03 19:37:05
而且,当然,请参阅http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns格式标准。 – 2015-04-03 19:38:16
您声称格式化的字符串都包含AM/PM,但事实并非如此。再看看你自己的数据。 – 2015-04-03 19:40:06