NSDateFormatter- stringFromDate不返回AM / PM

时间:2015-05-22 10:59:23

标签: ios datetime nsdate nsdateformatter date-format

    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。 我冲浪了很多,我没有办法显示上午/下午。如果有人可以帮我找到出路,那将会非常有帮助。 我正在使用XCode 6.3,我的设备中安装了iOS 8.3。

6 个答案:

答案 0 :(得分:14)

检查设备设置24小时。如果已开启,请将其关闭。

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

如果您不想显示秒数,请使用以下代码:

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

答案 1 :(得分:7)

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

答案 2 :(得分:1)

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

今天的时间:15:46:43

答案 3 :(得分:1)

试试这个

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

答案 4 :(得分:0)

尝试

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

答案 5 :(得分:0)

您可以轻松地将时间转换为24小时格式。

尝试使用此代码对我来说很好。

        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
          }