写一个java方法,将时间字符串转换为Date类型,需要考虑支持各种格式的时间字符串
时间: 2023-12-14 14:40:06 浏览: 94
javascript转换日期字符串为Date日期对象的方法
5星 · 资源好评率100%
可以使用Java的SimpleDateFormat类来将时间字符串转换为Date类型。以下是一个示例方法:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtils {
// 支持的时间格式
private static final String[] DATE_FORMATS = {
"yyyy-MM-dd HH:mm:ss",
"yyyy/MM/dd HH:mm:ss",
"yyyy-MM-dd",
"yyyy/MM/dd",
"MM/dd/yyyy",
"dd/MM/yyyy",
"yyyy.MM.dd",
"MM/dd/yyyy HH:mm:ss",
"dd/MM/yyyy HH:mm:ss",
"yyyy/MM/dd HH:mm:ss.SSS",
"yyyy-MM-dd'T'HH:mm:ss'Z'",
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"yyyy-MM-dd'T'HH:mm:ssZ",
"yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"EEE MMM dd HH:mm:ss zzz yyyy"
};
/**
* 将时间字符串转换为Date类型
* @param dateString 时间字符串
* @return Date类型的时间
* @throws ParseException 如果解析失败则抛出异常
*/
public static Date parse(String dateString) throws ParseException {
for (String format : DATE_FORMATS) {
try {
return new SimpleDateFormat(format).parse(dateString);
} catch (ParseException ignored) {}
}
throw new ParseException("Unparseable date: " + dateString, -1);
}
}
```
在这个方法中,我们定义了一个私有的DATE_FORMATS数组,它包含了我们支持的各种时间格式。然后,我们遍历这个数组,尝试使用每个格式来解析传入的时间字符串。如果解析成功,则返回Date类型的时间;否则,继续尝试下一个格式。如果所有的格式都尝试过后,仍然无法解析出时间,则抛出ParseException异常。
使用这个方法很简单,只需要调用它并传入时间字符串即可:
```java
try {
Date date = DateUtils.parse("2020-10-01 12:30:00");
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
```
输出结果为:
```
Thu Oct 01 12:30:00 CST 2020
```
阅读全文