我正在尝试使用SimpleDateFormat解析以下日期:10:00 AM (UTC-08:00) on Sep 3, 2015
。
我得到的最远的是:
message = "10:00 AM UTC-08:00";
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a z");
sdf.parse(message);
一旦我添加了月份和月份,我就得到以下异常: (我试图删除括号和' on'但我希望找到一个优雅地处理它的解决方案)
message = "10:00 AM UTC-08:00 on Sep 3";
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a z MMM d");
result = {java.text.ParseException@9787}Method threw 'java.text.ParseException' exception.
errorOffset = 12
detailMessage = "Unparseable date: "10:00 AM UTC-08:00 Jul""
很想知道我错过了什么。
答案 0 :(得分:0)
使用您的输入:7月10日上午10:00 UTC-08:00
和格式如:MMM HH:mm a z
答案 1 :(得分:0)
我得出结论,时区必须在最后。
这些都有效:
String message = "10:00 AM UTC-08:00";
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a z");
String message = "Jul";
SimpleDateFormat sdf = new SimpleDateFormat("MMM");
String message = "10:00 AM Jul UTC-08:00";
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a MMM z");
String message = "UTC-08:00";
SimpleDateFormat sdf = new SimpleDateFormat("z");
然而这些不是:
String message = "10:00 AM UTC-08:00 Jul";
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a z MMM");
String message = "UTC-08:00 10:00 AM";
SimpleDateFormat sdf = new SimpleDateFormat("z HH:mm a");
此外,我看到的所有模式示例都有最后的时区。但我找不到明确说明这一点的任何文件,所以如果你知道其他任何事情,那么读这篇文章的人请分享。