1

我从 java 日历类型中获取价值,我需要将其更改为 EDM 格式类型,就像

'2000-12-12T12:00'

即 formattedDateAndTime 需要 = '2000-12-12T12:00'

当我使用以下代码时,我在最后一条语句中得到了转储

java.lang.IllegalArgumentException:无法将给定对象格式化为日期

Calendar fval;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat tf = new SimpleDateFormat("HH:mm:ss");
String formattedDateAndTime = df.format(fval) + "T" + tf.format(fval);

我在这里做错了什么?

4

3 回答 3

3

用这个

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
于 2013-07-08T07:51:42.633 回答
1

我初始化 fval 的解决方案:

Date fval = new Date(new GregorianCalendar().getTimeInMillis());
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat tf = new SimpleDateFormat("HH:mm:ss");
String formattedDateAndTime1 = df.format(fval) + "T" + tf.format(fval);
System.out.println(formattedDateAndTime1);

String.format()是另一种格式化对象的方法(参见JavaDoc):

String formattedDateAndTime2 = String.format("%1$tFT%1$tT",fval);
System.out.println(formattedDateAndTime2);
于 2013-07-08T08:26:13.377 回答
1

您只能使用Date对象进行格式化。尝试 :

Calendar fval = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat tf = new SimpleDateFormat("HH:mm:ss");
String formattedDateAndTime = df.format(fval.getTime()) + "T" + tf.format(fval.getTime());
System.out.println(formattedDateAndTime);

输出 :

2013-07-08T09:51:06
于 2013-07-08T07:51:43.667 回答