-1

如何解析像 '2012-08-22 11:55:38 这样的日期

到“8 月 8 日”

我尝试使用 formateador = new SimpleDateFormat("d MMM");

但我得到一个“无法解析的日期”异常。

希望您能够帮助我。谢谢

4

4 回答 4

4

你从一个字符串解析为一个Date. 然后,您可以使用不同的模式将 a格式化为字符串。Date目前,鉴于您向我们展示的代码,您似乎正在尝试解析值“2012-08-22 11:55:38”,并SimpleDateFormat 期待模式“d MMM”,但显然没有遵守。你应该有类似的东西:

SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
                                                    Locale.US);
// TODO: Set the time zone appropriately
Date date = inputFormat.parse(inputText);

SimpleDateFormat outputFormat = new SimpleDateFormat("d MMM", targetLocale);
// TODO: Set the time zone appropriately
String outputText = outputFormat.format(date);

请注意,如果您在 Java 中做大量的日期/时间工作,您应该查看Joda Time,这是一个更好的日期/时间 API。

于 2012-08-25T19:57:20.490 回答
1

这应该有效(如果我明白你在问什么):

String s = "2012-08-22 11:55:38";
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dt = fmt.parse(s);
DateFormat output = new SimpleDateFormat("d 'of' MMMM", Locale.US);
System.out.println(output.format(dt)); //prints 22 of August
于 2012-08-25T19:57:27.987 回答
1

从输入字符串解析日期时遇到问题。

"2012-08-22 11:55:38" 采用 "yyyy-MM-dd HH:mm:ss" 格式,您应该首先使用它从输入字符串中解析日期。

然后,一旦有了Date对象,就可以将日期格式化为所需的格式。

于 2012-08-25T19:57:32.927 回答
1

如果我的问题正确,您尝试将第一个字符串解析为日期,然后将结果日期格式化为秒字符串。如果这是真的,那么请看下面的代码:

SimpleDateFormat f1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat f2 = new SimpleDateFormat("dd 'of' MMMM");
try {
  java.util.Date date = f1.parse("2012-08-22 11:55:38");
  System.out.println(f2.format(date));
} catch (ParseException ex) {
  ex.printStackTrace(); 
}
于 2012-08-25T19:57:50.963 回答