NSDateFormatter- stringFromDate不返回AM / PM

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"hh:mm:ss a"]; NSLog(@"Today's Time: %@", [formatter stringFromDate:[NSDate date]]); 

上面的代码只是给出了如下的输出: Today's Time: 15:46:43 Today's Time: 3:46 PM Today's Time: 15:46:43我希望输出是Today's Time: 3:46 PM 。 我冲浪了很多,我没有find一个方式来显示上午/下午。 如果有人能帮我find出路,那真的很有帮助。 我正在使用XCode 6.3,我的设备安装了iOS 8.3。

检查您的设备设置24小时。 如果打开,请将其closures。

你的代码非常好。 我得到的输出如下所示:今日时间:下午04:31:58

如果你不想显示秒数使用这个代码:

 [formatter setDateFormat:@"hh:mm a"]; 

HH:24小时制

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; [formatter setLocale:locale]; [formatter setDateFormat:@"HH:mm a"]; 

产量

  Today's Time: 16:42 PM 

hh:12小时格式

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; [formatter setLocale:locale]; [formatter setDateFormat:@"hh:mm a"]; 

产量

  Today's Time: 04:43 PM 

尝试这个

  NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"hh:mm a"]; [dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; NSString *stringFromTime = [dateFormatter stringFromDate:[NSDate date]]; 

尝试

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"hh:mm a"]; NSLog(@"Today's Time: %@", [formatter stringFromDate:[NSDate date]]); 

将设备时间格式更改为12小时格式,而不是24小时格式 。 你不能以24小时的时间格式下午上午。

今天的时间: 15 :46:43