问题
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm:ss a"];
NSLog(@"Today's Time: %@", [formatter stringFromDate:[NSDate date]]);
The above code just gives the following output Today's Time: 15:46:43
I want the output to be Today's Time: 3:46 PM
.
I surfed a lot and i did not find a way to show AM/PM. Would be really helpful if someone can help me find a way out.
I am using XCode 6.3 and my Device has iOS 8.3 installed in it.
回答1:
Check your device settings for 24 hour time. If it is on, turn it off.
Your code is perfectly fine. I am getting output as shown below : Today's Time: 04:31:58 PM
If you don't want to show seconds use this code :
[formatter setDateFormat:@"hh:mm a"];
回答2:
HH : 24 hour format
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[formatter setLocale:locale];
[formatter setDateFormat:@"HH:mm a"];
output
Today's Time: 16:42 PM
hh : 12 hour format
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[formatter setLocale:locale];
[formatter setDateFormat:@"hh:mm a"];
output
Today's Time: 04:43 PM
回答3:
Change the time format of your device time to 12 hour format instead of 24 hour format. You can not get am pm in 24 hour time format.
Today's Time: 15
:46:43
回答4:
Try This
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh:mm a"];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
NSString *stringFromTime = [dateFormatter stringFromDate:[NSDate date]];
回答5:
Try
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm a"];
NSLog(@"Today's Time: %@", [formatter stringFromDate:[NSDate date]]);
回答6:
You can easily convert Time in 24 hours format .
Try this Code it is working fine for me .
func convertTime(_ date : String) -> String{
let dateAsString = date
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "h:mm:ss " // "h:mm:ss a"
date = dateFormatter.date(from: dateAsString)
dateFormatter.dateFormat = "HH:mm a"
let date24 = dateFormatter.string(from: date!)
print(date24)
return date24
}
来源:https://stackoverflow.com/questions/30394960/nsdateformatter-stringfromdate-not-returning-am-pm