以AM / PM格式显示时间

时间:2012-04-16 09:05:54

标签: java time

我已经编写了显示当前时间的代码,但我的问题是它没有使用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);

6 个答案:

答案 0 :(得分: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,试着看here

答案 1 :(得分:4)

您应该使用SimpleDateFormat

String time = new SimpleDateFormat("h:mm a").format(new Date());

答案 2 :(得分:1)

您可以手动执行此操作,例如

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

甚至更好地使用SimpleDateFormat。请参阅此类'javadoc以了解如何配置它。这将花费5分钟第一次,但然后节省您的时间。

答案 3 :(得分:1)

由于您的servlet仅打印出值,因此最好使用DateFormat来设置如何打印值。

举个例子:

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

有关详细信息,请参阅DateFormat class here

答案 4 :(得分:1)

使用 calendar.get(Calendar.AM_PM)

如果当前时间在PM中则返回整数值1,否则返回0表示AM。 仔细阅读link ..

答案 5 :(得分:0)

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