2015-06-16 79 views
0

我使用Joda的DateTimeFormatter來獲取格式化的日期和時間。Joda DateTimeFormatter知道AM或PM

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

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

由於我使用DateTimeFormatter與語言環境,我怎麼能知道時間是上午還是下午?

+0

變量「mydateObj」的類型是什麼? –

+0

這是Joda的'DateTime' –

回答

2

目前還不清楚「myDateObj」是什麼類型,所以我不得不猜測。但有一點是肯定的。您不能使用格式化程序查詢時間是上午還是下午,因爲此信息不構成格式化程序狀態的一部分。格式化程序不是「小時」,因此您的變量名稱完全是誤導性的。理論上你可能會問打印輸出是否等於「AM」或「PM」(英文)。但是有一個更好的方法,不依賴任何區域設置。

Joda-Time提供各種類型,如LocalTime,LocalDateTimeDateTime,它們知道方法getHourOfDay()。請注意,AM/PM本身無法直接訪問。但以下小計算很容易:

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

myDateObj是Joda的'DateTime' –

+0

@NoviceUser然後你可以直接詢問你的myDateObj變量,這裏不需要格式化程序。 –

+0

任何想法我怎麼能做到這一點? –