【问题标题】:convert calendar time to EDM from java从java将日历时间转换为EDM
【发布时间】:2013-07-08 07:46:29
【问题描述】:

我从 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);

我在这里做错了什么?

【问题讨论】:

    标签: java date calendar date-format simpledateformat


    【解决方案1】:

    使用这个

    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
    

    【讨论】:

      【解决方案2】:

      您只能使用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
      

      【讨论】:

        【解决方案3】:

        我的初始化 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);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-07-28
          • 1970-01-01
          • 2011-02-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-14
          • 2020-11-17
          相关资源
          最近更新 更多