日期格式JAVA

时间:2012-05-04 06:52:26

标签: java datetime simpledateformat

我想将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)`

我怎么能这样做?

5 个答案:

答案 0 :(得分:16)

这里有效:

  1. 删除第一个模式中的额外“T”
  2. 第二种格式不正确,应为dd-MMM-yyyy。
  3. 查看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();
            }
    
        }
    }
    

答案 1 :(得分:1)

我认为如果删除'T',它就会有用。

答案 2 :(得分:1)

使用此模式:

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

不要使用它:

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

答案 3 :(得分:1)

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();
}

答案 4 :(得分:1)

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));
}