使用SimpleDateFormat顺利解析日期

来源:互联网 发布:ep8数据库架设 编辑:程序博客网 时间:2024/06/06 13:07

异常:

java.text.ParseException: Unparseable date: "Tue Nov 22 00:00:00 GMT 2011"


解析日期的要点:

 

1. 对照下表与解析目标字符串写出对应pattern

 

字母日期或时间元素表示示例GEra 标志符TextADy年Year199696M年中的月份MonthJulyJul07w年中的周数Number27W月份中的周数Number2D年中的天数Number189d月份中的天数Number10F月份中的星期Number2E星期中的天数TextTuesdayTueaAm/pm 标记TextPMH一天中的小时数(0-23)Number0k一天中的小时数(1-24)Number24Kam/pm 中的小时数(0-11)Number0ham/pm 中的小时数(1-12)Number

12

m小时中的分钟数Number30s分钟中的秒数Number55S毫秒数Number978z时区General time zonePacific Standard TimePSTGMT-08:00Z时区RFC 822 time zone-0800


使用SimpleDateFormat进行解析

翻阅api查到SimpleDateFormat中有一个重载的构造

SimpleDateFormat(String pattern, Locale locale) 


用给定的模式和给定语言环境的默认日期格式符号构造 SimpleDateFormat

 

String dateStr = "Tue Nov 22 00:00:00 GMT 2011";  String pattern = "EEE MMM dd HH:mm:ss z yyyy";DateFormat format = new SimpleDateFormat(pattern, Locale.US);  System.out.println(format.parse(str));

改良一下之前的代码就可以顺利解析了

注:pattern一定要正确,和自己的日期对应,还要设置正确的Locale