11

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)`

どうすればこれを行うことができますか?

4

5 に答える 5

16

ここで、これは機能します:

  1. 最初のパターンの余分な「T」を削除します
  2. 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();
        }

    }
}
于 2012-05-04T06:56:11.267 に答える
1

削除すればうまくいくと思います'T'

于 2012-05-04T06:55:32.547 に答える
1

このパターンの使用:

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

これを使用しないでください:

sdf.applyPattern("DD-MON-RR");
于 2012-05-04T07:00:18.383 に答える
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();
}
于 2012-05-04T07:00:34.083 に答える
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));
}
于 2012-05-04T07:01:17.120 に答える