Nov*_*ser 2 java localization jodatime
我正在使用Joda的DateTimeFormatter获取格式化的日期和时间。
DateTimeFormatter hour = DateTimeFormat.forPattern("aa").withLocale(locale);
System.out.println(hour.print(mydateObj));
由于我在区域设置中使用DateTimeFormatter,因此如何知道时间是AM还是PM?
还不清楚“ myDateObj”的类型是什么,所以我不得不以某种方式猜测。但是有一点是肯定的。您不能使用格式化程序查询时间是上午还是下午,因为此信息不构成格式化程序状态的一部分。格式化程序不是“小时”,因此您的变量名完全具有误导性。从理论上讲,您可能会问打印的输出是否等于“ AM”或“ PM”(英语)。但是有一种更好的方法,它不依赖于任何语言环境设置。
乔达时提供如各种类型的LocalTime,LocalDateTime或者DateTime哪知道方法getHourOfDay() 。请注意,不能直接访问AM / PM本身。但是,只需进行少量计算即可轻松实现:
public static boolean isAM(DateTime time) {
return time.getHourOfDay() < 12;
}
Run Code Online (Sandbox Code Playgroud)