【发布时间】:2012-05-18 09:09:47
【问题描述】:
我有这种格式的日期 (2012-11-17T00:00:00.000-05:00)。我需要将日期转换成这种格式 mm/yyyy。
我尝试过这种方式,但我得到了这个异常。
Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(Unknown Source)
at java.text.Format.format(Unknown Source)
at DateParser.main(DateParser.java:14)
请看我下面的代码:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateParser {
public static void main(String args[]) {
String MonthYear = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("mm/yyyy");
String dateformat = "2012-11-17T00:00:00.000-05:00";
MonthYear = simpleDateFormat.format(dateformat);
System.out.println(MonthYear);
}
}
【问题讨论】:
-
SimpleDateFormat#format需要Date实例,而不是String。所以你应该先通过SimpleDateFormat#parse将字符串转换为Date。 -
2019 评论:你根本不应该再使用
SimpleDateFormat。这个类是出了名的麻烦和过时。而是使用DateTimeFormatter和java.time, the modern Java date and time API 中的其他类。
标签: java