java实现将xx年xx月xx日、1999-09-09、1999.09.09、1999/3/4转换成1999-09-09的代码
时间: 2023-05-25 13:01:28 浏览: 41
A:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateConverter {
public static void main(String[] args) throws ParseException {
String[] dateStrings = {"xx年xx月xx日", "1999-09-09", "1999.09.09", "1999/3/4"};
for (String dateString : dateStrings) {
String convertedDate = convertToStandardDate(dateString);
System.out.println("Converted " + dateString + " to " + convertedDate);
}
}
public static String convertToStandardDate(String dateString) throws ParseException {
SimpleDateFormat[] formats = {
new SimpleDateFormat("yyyy年MM月dd日"),
new SimpleDateFormat("yyyy-MM-dd"),
new SimpleDateFormat("yyyy.MM.dd"),
new SimpleDateFormat("yyyy/MM/dd")
};
for (SimpleDateFormat format : formats) {
try {
Date date = format.parse(dateString);
return new SimpleDateFormat("yyyy-MM-dd").format(date);
} catch (ParseException e) {}
}
throw new ParseException("Invalid date format: " + dateString, 0);
}
}
```
上面的 `convertToStandardDate()` 方法会将输入字符串解析为 Date 对象,然后再用格式化器将其格式化为标准的“yyyy-MM-dd”日期格式。如果无法解析则会抛出 ParseException 异常。这个方法的实现使用了多个 SimpleDateFormat 转换器来支持多种输入格式。