【发布时间】:2014-11-06 13:45:51
【问题描述】:
我使用java.text.SimpleDateFormat 尝试了许多不同类型的解决方案,但都不能完全正确。
我收到的输入字符串是Tue Nov 5 00:00:00 UTC+0530 2013。
我想要的格式是dd-MMM-yy。
以下是我使用的代码:
SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM d HH:mm:ss zZ yyyy", Locale.ENGLISH);
date = formatter.parse(s);
System.out.println(date);
我收到了error: unreported exception ParseException; must be caught or declared to be thrown
date = formatter.parse(s);
我尝试了很多格式更改,但仍然收到此错误。谁能告诉我我传递的字符串的确切格式?
【问题讨论】:
-
您遇到了 compile-time 错误。这不取决于您使用的格式。这只是意味着您的源代码无效 -
SimpleDateFormat.parse可以抛出ParseException,而您既没有捕捉到它,也没有声明它可以抛出。 -
请注意,打印出
Date并没有多大帮助 - 您需要使用单独的SimpleDateFormat与您的“目标”格式。 -
我的错!我忘了添加`try catch`块。感谢您的发现。
-
@Freakyuser 请在发帖前搜索 StackOverflow。数百个问题和答案中的任何一个都有示例代码,您可以研究这些代码以查看日期时间字符串解析期间的异常处理。
-
@Freakyuser 该格式问题也已在数百个问答中得到处理,例如this one。再次,请在发布前搜索。 StackOverflow 被不必要的重复问题污染了。
标签: java