37

2012 年 12 月 1 日(土)00:00:00 GMT

上記の日付を以下の形式に変換する必要があります

2012-12-01

どうやって?

私は次の方法で試しましたが、うまくいきません

public Date ConvertDate(Date date){

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    String s = df.format(date);
    String result = s;
    try {
        date=df.parse(result);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return date;
  }
4

6 に答える 6

83

これを使って。

java.util.Date date = new Date("Sat Dec 01 00:00:00 GMT 2012");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String format = formatter.format(date);
System.out.println(format);

次のような出力が得られます

2012-12-01
于 2012-12-26T10:23:36.167 に答える
4

更新ここでの私の回答は古くなっています。Joda -Time プロジェクトはメンテナンス モードになり、java.timeクラスへの移行が推奨されます。Ole VV による回答の最新のソリューションを参照してください。

Joda-Time

NidhishKrishnanによって受け入れられた答えは正しいです。

冗談として、 Joda-Time 2.3の同じ種類のコードを次に示します。

// © 2013 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so.
// import org.joda.time.*;
// import org.joda.time.format.*;

java.util.Date date = new Date(); // A Date object coming from other code.

// Pass the java.util.Date object to constructor of Joda-Time DateTime object.
DateTimeZone kolkataTimeZone = DateTimeZone.forID( "Asia/Kolkata" );
DateTime dateTimeInKolkata = new DateTime( date, kolkataTimeZone );

DateTimeFormatter formatter = DateTimeFormat.forPattern( "yyyy-MM-dd");
System.out.println( "dateTimeInKolkata formatted for date: " + formatter.print( dateTimeInKolkata ) );
System.out.println( "dateTimeInKolkata formatted for ISO 8601: " + dateTimeInKolkata );

実行すると…</p>

dateTimeInKolkata formatted for date: 2013-12-17
dateTimeInKolkata formatted for ISO 8601: 2013-12-17T14:56:46.658+05:30
于 2013-12-17T09:32:36.733 に答える
4
String s;
Format formatter;
Date date = new Date();

// 2012-12-01
formatter = new SimpleDateFormat("yyyy-MM-dd");
s = formatter.format(date);
System.out.println(s);
于 2012-12-26T10:26:44.813 に答える
2

それ自体をフォーマットすることはできませんDate。フォーマットされた結果は でのみ取得できますString。他の方の言う通りに使ってくださいSimpleDateFormat

さらに、そのほとんどgetter methods in Datedeprecated.

于 2012-12-26T10:34:03.997 に答える