我正在开发一个Java应用程序,我在尝试创建 Date 对象时遇到了一些问题:
所以我做了:
Calendar dataRendimentoLordoCertificatoCalendar = Calendar.getInstance();
dataRendimentoLordoCertificatoCalendar.set(annoCorrente - 1, 10, 01);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dataRendimentoLordoCertifiacato = new Date(sdf.format(dataRendimentoLordoCertificatoCalendar.getTime()));
使用Eclipse调试器我可以看到 sdf.format(dataRendimentoLordoCertificatoCalendar.getTime())的值(作为参数传递给 Date 构造函数) 2015-11-01 (这是我的期望:2015年第一届Noveember)。
问题在于执行此行时:
Date dataRendimentoLordoCertifiacato = new Date(sdf.format(dataRendimentoLordoCertificatoCalendar.getTime()));
我获得了这个例外:
Exception in thread "main" java.lang.IllegalArgumentException
at java.util.Date.parse(Date.java:598)
at java.util.Date.<init>(Date.java:255)
at com.mycompany.dbmanager.MyProject.getRendimentoLordoCertificato(PucManager.java:64)
为什么呢?我错过了什么?我该如何解决这个问题?
TNX
答案 0 :(得分:1)
我不知道你为什么要这个解决方案,但是如果你想使用String(返回的getTime类型),你必须使用parse,如下所示:
public static void main(String[] args) throws ParseException {
Calendar dataRendimentoLordoCertificatoCalendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dataRendimentoLordoCertifiacato = sdf.parse(sdf.format(dataRendimentoLordoCertificatoCalendar.getTime()));
System.out.println(dataRendimentoLordoCertifiacato);
}
但是,我不知道你到底想要什么。因为您有 DATE ,那么您将获得此日期的字符串,然后将其解析回日期 :-D
答案 1 :(得分:0)