我有下面的程序,其中日期需要在美國格式日期轉換,因爲您可以看到我正在輸入日期,但 仍然需要以美國格式轉換沒有發生儀式現在想通過java轉換美國格式的日期
請指教如何實現下面這個是我的代碼
public class DateFormattingTest {
private static final SimpleDateFormat outputDate = new SimpleDateFormat(
"dd/MM/yyyy");
public static void main(String[] args) {
System.out.println ("03/20/2020-->:" + extractDate("03/20/2020"));
System.out.println ("2033-05-01-->:" + extractDate("2033-05-01"));
System.out.println ("08-05-34-->:" + extractDate("08-05-34"));
System.out.println ("30-DEC-2013 -->:" + extractDate("30-DEC-2013"));
System.out.println ("DEC-31-2013 -->:" + extractDate("DEC-31-2013"));
}
public static Date extractDate(String dateStr) {
String [] datePatternsUS = {"d-M-yy", "d-M-yyyy", "d/M/yy", "d/M/yyyy","dd-MM-yy", "yyyy-MM-dd", "dd-MMM-yy","dd-MMM-yyyy","dd-MM-yyyy",
"dd/MM/yy","dd/MMM/yy","dd/MMM/yyyy"};
Date date = null;
try {
date = DateUtils.parseDate(dateStr, datePatternsUS);
}
catch (Exception except) {
except.printStackTrace();
}
return date;
}
}
在執行時,我得到下面的輸出..這是不正確的請指教如何糾正它在美國格式
03/20/2020-->:Tue Aug 03 00:00:00 IST 2021
2033-05-01-->:Thu Nov 23 00:00:00 IST 2006
08-05-34-->:Mon May 08 00:00:00 IST 2034
30-DEC-2013 -->:Mon Dec 30 00:00:00 IST 2013
DEC-31-2013 -->:null
java.text.ParseException: Unable to parse the date: DEC-31-2013
程序中的格式都不是美國格式。美國格式在「d」日之前會有月份「M」。 – khelwood