這是我原來的代碼 -差異毫米
String dateString = "23 Dec 2015 1:4 PM";
Locale locale = new Locale("en_US");
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy HH:mm a");
DateFormat df = new SimpleDateFormat("dd MMM yyyy HH:mm a", locale);
Date date = null;
try {
date = formatter.parse(dateString);
} catch (ParseException e) {
LOGGER.error(e);
}
String newDate = df.format(date);
System.out.println("oldDate = " + dateString);
System.out.println("newDate = " + newDate);
,這裏是我的輸出 -
oldDate = 23 Dec 2015 1:4 PM
newDate = 23 Dec 2015 01:04 AM
還有就是之間AM-PM差異oldDate
和newDate
。現在我改變了DateFormat
代碼TO-
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy hh:mm a");
DateFormat df = new SimpleDateFormat("dd MMM yyyy hh:mm a", locale);
,我得到預期的輸出,這是 -
oldDate = 23 Dec 2015 1:4 PM
newDate = 23 Dec 2015 01:04 PM
我知道,HH
象徵着24小時格式和hh
象徵着格式爲12小時。
我的問題是
如果我使用HH:mm a
代替hh:mm a
,不應該這是24小時格式返回的時間?
(或)
如果默認爲12小時格式,不應該它根據日期輸入提供返回各自的AM/PM標記?
這只是爲了我的理解。
謝謝@MenoHochschild。請再次看看我的答案! –
好了,但推薦'新Locale(「en-us」)'仍然是錯誤的。 –
@MenoHochschild尊重所有我想知道你我們可以在Java 8(1.8.0_121)'語言中構建一個語言環境,正如我的答案中所述! –