[英]SimpleDateFormat - Unparsable Date exception with IST timezone. What's wrong?
我有日期格式的字符串:
Oct 28, 2015, 05.15PM IST
所以我想使用SimpleDateFormat将其解析为Date对象:
String date = "Oct 28, 2015, 05.15PM IST";
SimpleDateFormat format = new SimpleDateFormat("MMM dd, yyyy, hh.mmaa zzz", Locale.US);
Date myDate = format.parse(date);
但我得到例外:
java.text.ParseException: Unparseable date: "Oct 28, 2015, 05.15PM IST" (at offset 22)
我究竟做错了什么?
根据我对指定AM / PM组件时对SimpleDateFormat
理解,您不必使用两个a或三个z。 您正在尝试使用多个AM / PM指定符以及多个时区指定符来解析“ 2015年10月28日下午5:15 IST”。 将格式对象更改为SimpleDateFormat format = new SimpleDateFormat("MMM dd, yyyy, hh.mma z", Locale.US);
问题在于,SimpleDateFormat无法将“ IST”解析为时区,因为它含糊不清。
我根据亚德里亚·科斯特的回答解决了这个问题。 但是实际上只有在我从日期字符串中删除了“ IST”之后,它才对我有用。 因此,完整的问题解决方案如下所示:
String date = "Oct 28, 2015, 05.15PM IST";
date = date.substring(0, date.length()-4);
SimpleDateFormat format = new SimpleDateFormat("MMM dd, yyyy, hh.mma", Locale.US);
format.setTimeZone(TimeZone.getTimeZone("Asia/Calcutta"));
Date myDate = format.parse(date);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.