iPhone日期为24小时格式

时间:2015-04-03 19:23:49

标签: ios objective-c nsdateformatter

我在这里有一个简单的问题,虽然有很多答案,但没有一个符合我的期望。

我想以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

当我从字符串转换后打印日期时,输出包含AM或PM标签。

当我的设备时间格式为24小时时,此代码可用absolutley。

我试过" H"和" h"在dateformatter中这样。

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

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

以及更多的结合: - (

我的要求是将2015-04-03 19:08:00 +0000的日期格式设为2015-04-03 7:08:00 PM +0000。

当我的设备时间格式为24小时时,我收到了预期的日志。

Lemme知道任何更多的澄清。

2 个答案:

答案 0 :(得分:0)

我无法发表评论,因为我是新手,但请尝试“HH:mm”(两个HH)。它总是对我有用。

答案 1 :(得分: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];