我正在使用 Joda 的 DateTimeFormatter 来获取格式化的日期和时间。
DateTimeFormatter hour = DateTimeFormat.forPattern("aa").withLocale(locale);
System.out.println(hour.print(mydateObj));
由于我在区域设置中使用 DateTimeFormatter,我如何知道时间是 AM 还是 PM?
最佳答案
目前尚不清楚“myDateObj”的类型是什么,所以我必须以某种方式猜测。但有一件事是肯定的。您不能使用格式化程序来查询时间是 AM 还是 PM,因为此信息不构成格式化程序状态的一部分。格式化程序不是“小时”,因此您的变量名称完全具有误导性。理论上您可能会问打印输出是否等于“AM”或“PM”(英文)。但是有一种更好的方法,它不依赖于任何区域设置。
Joda-Time 提供各种类型,例如 LocalTime
、LocalDateTime
或 DateTime
,它们都知道方法 getHourOfDay() 。请注意,无法直接访问 AM/PM 本身。但很容易做以下小计算:
public static boolean isAM(DateTime time) {
return time.getHourOfDay() < 12;
}
关于java - Joda DateTimeFormatter 知道上午还是下午,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30874403/