I have a simple question here, though a lot of answers are available but none of them are meeting my expectations.
I want to retrieve my iPhone device date in 24 time hour format. My iPhone time is set as 12 hour time format.
here is code I have tried so far:
[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]]];
Outputs:
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
The output contains AM or PM label when I am printing date after converting from string.
This code works absolutley when my device time format is 24 hours.
I have tried with "H" and "h" in dateformatter like this.
[formatter setDateFormat:@"yyyy-MM-dd H:mm "] ;
or
[formatter setDateFormat:@"yyyy-MM-dd h:mm "] ;
and many more conbinations :-(
My requirement is to get the date format as 2015-04-03 19:08:00 +0000 for 2015-04-03 7:08:00 PM +0000.
When my device time format is 24 hour, I am getting the expected logs.
Lemme know for any more clarification.