我正在尝试将字符串解析为日期,这就是我所拥有的:
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss zZ (zzzz)"); Date date = new Date(); try { date = sdf.parse(time); } catch (ParseException e) { e.printStackTrace(); }
要解析的字符串是这样的:
Sun Jul 15 2012 12:22:00 GMT+0300 (FLE Daylight Time)
我跟着http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
很确定我已经完成了这本书的所有内容.但它给了我ParseException.
java.text.ParseException: Unparseable date: "Sun Jul 15 2012 12:22:00 GMT+0300 (FLE Daylight Time)"
我究竟做错了什么?我试过的模式:
EEE MMM dd yyyy HH:mm:ss zzz EEE MMM dd yyyy HH:mm:ss zZ (zzzz)
解决方法
你似乎混合了z和Z的模式.如果你忽略(FLE日光时间),因为这与GMT 0300中的信息相同,问题就变成了SimpleDateFormat想要GMT 0300或GMT 03:00.最后一个变体可以像这样解析:
String time = "Sun Jul 15 2012 12:22:00 GMT+03:00 (FLE Daylight Time)"; SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss zzz"); Date date = sdf.parse(time);
[编辑]根据关于其时间字符串工作的其他帖子,这可能是因为您的时间字符串包含冲突的信息或混合格式.