Joda DateTimeFormatter知道AM还是PM

时间:2015-06-16 17:34:42

标签: java localization jodatime

我使用Joda的DateTimeFormatter来获取格式化的日期和时间。

DateTimeFormatter hour = DateTimeFormat.forPattern("aa").withLocale(locale);

System.out.println(hour.print(mydateObj));

由于我将 DateTimeFormatter 与区域设置一起使用,我怎么知道时间是上午还是上午?

1 个答案:

答案 0 :(得分:4)

目前尚不清楚“myDateObj”的类型是什么,所以我不得不以某种方式猜测。但有一件事是肯定的。如果时间是AM或PM,则无法使用格式化程序进行查询,因为此信息不构成格式化程序状态的一部分。格式化程序不是“小时”,因此您的变量名称完全是误导性的。理论上你可能会询问打印输出是否等于“AM”或“PM”(英文)。但是有一种更好的方法,它不依赖于任何语言环境设置。

Joda-Time提供各种类型,例如LocalTimeLocalDateTimeDateTime,它们知道方法getHourOfDay()。请注意,无法直接访问AM / PM本身。但是按照小计算很容易做到:

public static boolean isAM(DateTime time) {
    return time.getHourOfDay() < 12;
}