我有以下程序,其中日期模式没有正确反映,即我执行它我得到前两个日期的日期格式不正确。
请告知我如何在名为datePatternsOfUk的数组中进行更改,以便它适用于所有日期
import org.apache.commons.lang.time.DateUtils;
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-09-2013 -->:" + extractDate("30-09-2013") );
public static Date extractDate(String dateStr) {
String[] datePatternsOfUk = { "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, datePatternsOfUk);
}
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-09-2013 -->:Mon Sep 30 00:00:00 IST 2013
伙计们请告知如何克服这个
答案 0 :(得分:1)
private static final String[] datePatternsOfUk = { "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" };
public static Date extractDate(String dateStr) {
for (String pattern : datePatternsOfUk) {
try {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
sdf.setLenient(false);
return sdf.parse(dateStr);
} catch (Exception except) {
except.printStackTrace();
}
}
return null;
}
你的第一次约会不会被解析,因为" M / d / yyyy"不见了。