我使用Joda的DateTimeFormatter來獲取格式化的日期和時間。Joda DateTimeFormatter知道AM或PM
DateTimeFormatter hour = DateTimeFormat.forPattern("aa").withLocale(locale);
System.out.println(hour.print(mydateObj));
由於我使用DateTimeFormatter與語言環境,我怎麼能知道時間是上午還是下午?
我使用Joda的DateTimeFormatter來獲取格式化的日期和時間。Joda DateTimeFormatter知道AM或PM
DateTimeFormatter hour = DateTimeFormat.forPattern("aa").withLocale(locale);
System.out.println(hour.print(mydateObj));
由於我使用DateTimeFormatter與語言環境,我怎麼能知道時間是上午還是下午?
目前還不清楚「myDateObj」是什麼類型,所以我不得不猜測。但有一點是肯定的。您不能使用格式化程序查詢時間是上午還是下午,因爲此信息不構成格式化程序狀態的一部分。格式化程序不是「小時」,因此您的變量名稱完全是誤導性的。理論上你可能會問打印輸出是否等於「AM」或「PM」(英文)。但是有一個更好的方法,不依賴任何區域設置。
Joda-Time提供各種類型,如LocalTime
,LocalDateTime
或DateTime
,它們知道方法getHourOfDay()。請注意,AM/PM本身無法直接訪問。但以下小計算很容易:
public static boolean isAM(DateTime time) {
return time.getHourOfDay() < 12;
}
myDateObj是Joda的'DateTime' –
@NoviceUser然後你可以直接詢問你的myDateObj變量,這裏不需要格式化程序。 –
任何想法我怎麼能做到這一點? –
變量「mydateObj」的類型是什麼? –
這是Joda的'DateTime' –