import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class ParseDateUtil implements Serializable {
private static final long serialVersionUID = 5608532423753884772L;
// 待转换字符串日期格式
private static String parse_format = "[dd/MMM/yyyy:HH:mm:ss Z]";
// 待转换日期时区类型
private static Locale locale = Locale.US;
// 需要转换目标日期格式
private static String format_format = "yyyy-MM-dd HH:mm:ss";
/**
* @description 解析日期格式
* @param date 需要转换的日期
* @param parse_format 需要转换的日志格式描述
* @param locale 需要转换的日期的时区类型
* @param format_format 目标日期格式
* @return String 目标日期格式描述的字符串
*/
public static String parser(String date,String parse_format,Locale locale,String format_format){
String strDate = "";
SimpleDateFormat parser = new SimpleDateFormat(parse_format,locale);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
strDate = formatter.format(parser.parse(date));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
strDate = formatter.format(new Date());
}
return strDate;
}
/**
* @description 默认解析日期格式,由[dd/MMM/yyyy:HH:mm:ss Z](如[09/Apr/2018:18:16:47 +0800])格式转为yyyy-MM-dd HH:mm:ss(如2018-04-09 18:16:47)格式
* @param date 需要转换的日期
* @return
*/
public static String parser(String date){
return parser(date, parse_format,locale,format_format);
}
public static void main(String[] args){
String strDate = "[08/May/2018:16:26:06 +0800]";
System.out.println(ParseDateUtil.parser(strDate));
}
}
附,日期格式说明文档链接:https://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
解析日志日期格式
最新推荐文章于 2023-08-02 16:38:19 发布