SimpleDateFormat 日期和时间模式
SimpleDateFormat date and time pattern
9 PM CST 14 NOV 16 或 9:30 PM CST 14 NOV 16
如果我的字符串是上面的日期和时间,我可以用于 SimpleDateFormat 的日期和时间模式应该是什么?如果时间只能是 9 或 9:30.
,我不确定模式应该是什么
这是正确的吗?
SimpleDateFormat sdf = new SimpleDateFormat("h:m aaa z d MMM yy");
我试过测试上面的代码。对于示例日期 9:30 PM CST 14 NOV 16,它正在运行。但是对于 16 年 11 月 14 日 CST 晚上 9 点,它抛出一个异常:
java.text.ParseException: Unparseable date: "9 PM CST 14 NOV 16"
您可以编写一个尝试多种日期格式模式的方法:
public static Date parseDate(String dateToParse) {
String[] dateFormats = {"h aaa z d MMM yy", "h:m aaa z d MMM yy"};
for (String dateFormat : dateFormats) {
try {
return new SimpleDateFormat(dateFormat).parse(dateToParse);
}
catch (ParseException e) {
}
}
return null;
}
然后
Date date1 = parseDate("9 PM CST 14 NOV 16");
System.out.println(date1);
Date date2 = parseDate("9:30 PM CST 14 NOV 16");
System.out.println(date2);
产出
Mon Nov 14 22:00:00 EST 2016
Mon Nov 14 22:30:00 EST 2016
9 PM CST 14 NOV 16 或 9:30 PM CST 14 NOV 16
如果我的字符串是上面的日期和时间,我可以用于 SimpleDateFormat 的日期和时间模式应该是什么?如果时间只能是 9 或 9:30.
,我不确定模式应该是什么这是正确的吗?
SimpleDateFormat sdf = new SimpleDateFormat("h:m aaa z d MMM yy");
我试过测试上面的代码。对于示例日期 9:30 PM CST 14 NOV 16,它正在运行。但是对于 16 年 11 月 14 日 CST 晚上 9 点,它抛出一个异常:
java.text.ParseException: Unparseable date: "9 PM CST 14 NOV 16"
您可以编写一个尝试多种日期格式模式的方法:
public static Date parseDate(String dateToParse) {
String[] dateFormats = {"h aaa z d MMM yy", "h:m aaa z d MMM yy"};
for (String dateFormat : dateFormats) {
try {
return new SimpleDateFormat(dateFormat).parse(dateToParse);
}
catch (ParseException e) {
}
}
return null;
}
然后
Date date1 = parseDate("9 PM CST 14 NOV 16");
System.out.println(date1);
Date date2 = parseDate("9:30 PM CST 14 NOV 16");
System.out.println(date2);
产出
Mon Nov 14 22:00:00 EST 2016
Mon Nov 14 22:30:00 EST 2016