我不知道格式字符串是什么
可以是2015-10-10
或2015/10/10
,也可以是2015-10-30 15:30
常规首先我想用来判断一个有效的日期或时间,然后使用SimpleDateFormat解析,我该怎么办?
所有格式包括:
- yyyy-MM-dd
- yyyy.MM-dd
- yyyy/MM/dd
- yyyy-MM-dd HH24:mm
- yyyy.MM-dd HH24:mm
- yyyy/MM/dd HH24:mm
- yyyy-MM-dd HH24:mm:ss
- yyyy.MM-dd HH24:mm:ss
- yyyy/MM/dd HH24:mm:ss
答案 0 :(得分:1)
use following date formatter to convert the date to String.
String d="2015-05-12";
DateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");
Date a=formatter.parse(d);
答案 1 :(得分:1)
我已经使用Natty Date Parser了。你可以尝试here。它可以在maven central here上找到。如果您使用的是gradle:
compile 'com.joestelmach:natty:0.12'
使用示例:
String[] exampleDates = {
"2015-10-10",
"2015/10/10",
"2015-10-30 15:30"
};
Parser parser = new Parser();
for (String dateString : exampleDates) {
List<DateGroup> dates = parser.parse(dateString);
Date date = dates.get(0).getDates().get(0);
System.out.println(date);
}
<强>输出:强>
10月10日星期六20:51:10 PDT 2015
10月10日星期六20:51:10 PDT 2015
10月30日星期五15:30:00 PDT 2015
修改强>
如果您知道日期格式,那么以下StackOverflow会比为项目添加依赖项更好:
https://stackoverflow.com/a/4024604/1048340
以下静态实用程序方法可能就足够了:
/**
* Parses a date with the given formats. If the date could not be parsed then {@code null} is
* returned.
*
* @param formats the possible date formats
* @param dateString the date string to parse
* @return the {@link java.util.Date} or {@code null} if the string could not be parsed.
*/
public static Date getDate(String[] formats, String dateString) {
for (String format : formats) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
return sdf.parse(dateString);
} catch (ParseException ignored) {
}
}
return null;
}