我使用 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);
我收到一个 错误:未报告的异常 ParseException;必须被捕获或宣布被抛出
date = formatter.parse(s);
我尝试了很多格式更改,但仍然收到此错误。任何人都可以让我知道我传递的字符串的确切格式吗?
最佳答案
处理异常
您没有在代码中处理异常。这就是编译器给出错误的原因。你需要handle ParseException可能会在解析过程中抛出。
SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM d HH:mm:ss zZ yyyy", Locale.ENGLISH);
try{
date = formatter.parse(s);
System.out.println(date);
}catch(ParseException ex){
//exception
ex.printStackTrace();
}
或者您可以将 throws ParseException
添加到您的方法中。
根据您的评论,您似乎正在尝试将日期[String] 转换为另一种格式。如果我是正确的,那么以下示例可能会对您有所帮助。
String inputstring="Tue Nov 5 00:00:00 UTC+0530 2013";
SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM d HH:mm:ss zZ yyyy", Locale.ENGLISH);
DateFormat outformat = new SimpleDateFormat("dd-MMM-yy");
try {
String result = outformat.format(formatter.parse(inputstring));
System.out.println(result);
} catch (ParseException ex) {
ex.printStackTrace();
}
输出:
04-Nov-13
关于java - 使用时区格式化日期。格式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26781045/