Java SimpleDataFormat给出了ParseException

Java SimpleDataFormat给出了ParseException,java,Java,我是新来的。我习惯于使用C语言,但我是java的新手。 我试图从jSpinner(日期模型)中获取一个小时字符串,但我不断地得到错误。我已经研究了这里已经给出的一些答案。。。但它仍然不起作用 uurStr返回“2014年1月25日星期六16:09:49 CET”,我试图从中获得“16:09”。但到目前为止没有运气。。。。有什么想法吗? 异常在“uurDate=sdf.parse(uurStr);”部分抛出 为了正确解析特定于语言的工作日和时区信息,需要按如下方式设置区域设置: final Sim

我是新来的。我习惯于使用C语言,但我是java的新手。 我试图从jSpinner(日期模型)中获取一个小时字符串,但我不断地得到错误。我已经研究了这里已经给出的一些答案。。。但它仍然不起作用

uurStr返回“2014年1月25日星期六16:09:49 CET”,我试图从中获得“16:09”。但到目前为止没有运气。。。。有什么想法吗? 异常在“uurDate=sdf.parse(uurStr);”部分抛出


为了正确解析特定于语言的工作日和时区信息,需要按如下方式设置区域设置:

final SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US);
如果未设置区域设置,则采用JRE的默认区域设置。这可能是操作系统默认区域设置或用户特定区域设置,或者该区域设置可能已被另一个Java类用
locale.setDefault(locale.XXXX)
覆盖。在这些情况下,这可能是正确的区域设置,也可能不是

也就是说,设置时区通常比较安全,如果要解析的字符串中没有时区,则可能会得到错误的时间信息:

sdf.setTimeZone(TimeZone.getTimeZone("GMT"));

在您的示例中,时区是可用的,您不必担心这一点

给我们uurStr通常包含的内容。我将格式设置为“HH:mm”,但当我运行它并选择(例如)22:00时,它返回“Sat Jan 25 22:00:00 CET 2014”。如果您按照您所说的方式获得uurStr值,它应该可以解析。你得到了parseexception还是HH:mm中的输出似乎有偏移量?我得到了异常。。。但我现在尝试解决这个问题,而不是使用jSpinner。虽然我对自己做错的事很感兴趣,但我还是这样做了。但是谢谢你们的回复!上帝啊打印一份uurStr并贴在这里。我很高兴它成功了。你介意把我的回答评定为已被接受吗。。。谢谢
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));