【发布时间】:2017-11-17 17:08:44
【问题描述】:
我试图将不带时区的日期字符串解析为带时区的新日期,但出现错误:java.text.ParseException: Unparseable date: "2017-11-17 10:49:39.772 "
这是我的代码:
String date = "2017-11-17 10:49:39.772 "
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS Z");
sdf.setTimeZone(TimeZone.getTimeZone("Europe/Amsterdam"));
sdf.parse(date); //here´s the error
return date.getTime();
有什么建议吗?
【问题讨论】:
-
您的日期字符串末尾有空格?就是想。当然还是可以解析的。
-
你的代码能编译吗?
date被声明为String,而String没有getTime方法,但您的最后一行代码尝试调用一个。 -
您仍在使用
SimpleDateFormat的任何特殊原因?我认为它已经过时了,而且从 Stack Overflow 上的问题数量来看,它给许多人带来了麻烦。java.time,现代 Java 日期和时间 API,也称为 JSR-310,更易于使用。 -
这里有误会吗?你说“到一个带有时区的新日期”。
Date从来没有时区。见All about java.util.Date。
标签: java timestamp simpledateformat