解析时间格式
/**
* 常用时间格式
*/
private static String[] parsePatterns = {
"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
"yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
"yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};
/**
* 解析时间格式
* @param date
* @return
*/
public static Date parseDate(String date) {
if (date == null) {
return null;
}
return matchDateFormatter(parsePatterns, date);
}
/**
* 解析常用的时间格式
* @param parsePatterns
* @param sDate
* @return
*/
public static Date matchDateFormatter(String[] parsePatterns, String sDate) {
for (String pattern : parsePatterns) {
SimpleDateFormat df = new SimpleDateFormat(pattern);
df.setLenient(false);//设置解析日期格式是否严格解析日期
ParsePosition pos = new ParsePosition(0);
Date date = df.parse(sDate, pos);
if (date != null) {
return date;
}
}
return null;
}
格式化时间
/**
* 格式化时间
*
* @param date
* @return
*/
public static String formatDate(String format, Date date) {
if (date == null) {
return null;
}
return new SimpleDateFormat(format).format(date);
}
测试类
public class TestUtils {
public static void main(String[] args) throws ParseException {
String time1 = "2000.12/05";
String time2 = "2000-12-05";
String time3 = "2000/12/05";
String time4 = "2000/12/";
System.out.println("time1 = " + ToolUtils.formatDate("yyyy-MM-dd HH:mm:ss",ToolUtils.parseDate(time1)));
System.out.println("time2 = " + ToolUtils.formatDate("yyyy-MM-dd HH:mm:ss",ToolUtils.parseDate(time2)));
System.out.println("time3 = " + ToolUtils.formatDate("yyyy-MM-dd HH:mm:ss",ToolUtils.parseDate(time3)));
System.out.println("time4 = " + ToolUtils.formatDate("yyyy-MM-dd HH:mm:ss",ToolUtils.parseDate(time4)));
}
}
运行结果