1

我编写了这段代码来显示当前时间,但我的问题是它不以 am 或 pm 格式显示时间,它只显示例如 12:00。没有上午或下午

    java.util.Calendar thetime = java.util.Calendar.getInstance();
    int h = thetime.get(java.util.Calendar.HOUR_OF_DAY);
    int m = thetime.get(java.util.Calendar.MINUTE);

    System.out.println("the current time is"+ h +":"+m);
4

6 回答 6

6

尝试添加:

int a_p = thetime.get(java.util.Calendar.AM_PM);
String am_pm;
if(a_p==0)
    am_pm = "AM";
else
    am_pm = "PM";

然后am_pm在输出的末尾添加。

无论如何,您应该更喜欢 SimpleDateFormat,请尝试在此处查看

于 2012-04-16T09:15:06.383 回答
4

您应该使用SimpleDateFormat

String time = new SimpleDateFormat("h:mm a").format(new Date());
于 2012-04-16T09:09:23.690 回答
1

您可以手动进行,例如

String ampm = h > 12 ? "PM" : "AM";
// now print the variable ampm

甚至更好地使用 SimpleDateFormat。请参考此类的 javadoc 以了解如何配置它。第一次需要 5 分钟,但可以节省您的时间。

于 2012-04-16T09:09:53.327 回答
1

当您的 servlet 打印出唯一的值时,您最好使用 DateFormat 来设置如何打印这些值。

举个例子:

DateFormat.getDateInstance(DateFormat.SHORT, <put your locale here>);

有关详细信息,请参阅此处的 DateFormat 类

于 2012-04-16T09:12:38.677 回答
1

使用calendar.get(Calendar.AM_PM)

如果当前时间在 PM,它将返回整数值 1,否则返回 0,表示 AM。通过这个链接..

于 2012-04-16T09:15:33.070 回答
0

使用 DateFormatter 以字符串格式显示时间。这里

于 2012-04-16T09:08:31.980 回答