繁体   English   中英

SimpleDateFormat-具有IST时区的不可解析的日期异常。 怎么了?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM