【问题标题】:Date Format JAVA日期格式 JAVA
【发布时间】:2012-05-04 06:52:26
【问题描述】:

我想将2012-05-04 00:00:00.0 格式化为04-MAY-2012。我已经按照以下步骤进行了尝试。

    SimpleDateFormat sdf = new SimpleDateFormat(
            "yyyy-MM-dd 'T' HH:mm:ss.SSS");

    Date date;
    String dateformat = "";
    try {
        date = sdf.parse("2012-05-04 00:00:00.0");
        sdf.applyPattern("DD-MON-RR");
        dateformat = sdf.format(date);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

但我得到了以下异常。

java.text.ParseException: Unparseable date: "2012-05-04 00:00:00.0"
    at java.text.DateFormat.parse(DateFormat.java:337)
    at com.am.test.Commit.main(Example.java:33)`

我该怎么做?

【问题讨论】:

  • 您的第一个模式中没有额外的“T”吗?

标签: java datetime simpledateformat


【解决方案1】:

这里,这行得通:

  1. 删除第一个模式中多余的“T”
  2. 第二种格式不正确,应该是dd-MMM-yyyy。

看看SimpleDateFormat的Javadoc

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class temp2 {

    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

        Date date;
        String dateformat = "";
        try {
            date = sdf.parse("2012-05-04 00:00:00.0");
            sdf.applyPattern("dd-MMM-yyyy");
            dateformat = sdf.format(date);
            System.err.println(dateformat);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

【讨论】:

    【解决方案2】:

    我认为如果您删除 'T' 它将起作用。

    【讨论】:

      【解决方案3】:

      使用这种模式:

      sdf.applyPattern("DD-MMM-YYYY");
      

      不要使用这个:

      sdf.applyPattern("DD-MON-RR");
      

      【讨论】:

        【解决方案4】:
        public static void main(String[] args) {
        SimpleDateFormat sdf =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
        Date oldFormatedDate = null;
        try {
            oldFormatedDate = sdf.parse("2012-05-04 00:00:00.0");
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println(new SimpleDateFormat("dd-MMM-yyyy").
                   format(oldFormatedDate));
        }
        

        【讨论】:

          【解决方案5】:
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
          
          Date date;
          String dateformat = "";
          try {
              date = sdf.parse("2012-05-04 00:00:00.0");
              sdf.applyPattern("dd-MMM-yyyy");
              dateformat = sdf.format(date);
              System.out.println(dateformat);
          } catch (ParseException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
          

          【讨论】:

            猜你喜欢
            • 2010-11-03
            • 2010-09-29
            • 2011-11-16
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多