1. ホーム
  2. java

Dateオブジェクトから時刻を削除する?

2023-08-25 22:36:05

質問

から時間を削除したい。 Date オブジェクトから時間を削除したい。

DateFormat df;
String date;
df = new SimpleDateFormat("dd/MM/yyyy");
d = eventList.get(0).getStartDate(); // I'm getting the date using this method
date = df.format(d); // Converting date in "dd/MM/yyyy" format

しかし、この日付を変換するとき ( String 形式です) を変換するときに、時刻も追加されます。

私は時間を全く欲していません。私が欲しいのは単に "2012/03/21"です。

どのように解決するのですか?

簡単な答えです。

いいえ、それは許されません。 なぜなら、それは Date に使うものだからです。

の javadoc から。 Date :

Dateクラスは、ミリ秒の精度で、時間における特定の瞬間を表します。

しかし このクラスは単なるデータオブジェクトなので、私たちがどのように記述しようが関係ありません。このクラスは単なるデータオブジェクトなので、どのように記述しようが構わないのです。 私たちが日付 2012/01/01 12:05:10.321 と表示されたら、それは 2012/01/01 であれば、これは必要なことです。 いろいろなやり方がありますね。

例1:文字列を操作する

入力文字列:2012/01/20 12:05:10.321

出力したい文字列:2012/01/20

yyyy/MM/ddはまさに私たちが必要としているものなので、単純に文字列を操作して結果を得ることができます。

String input = "2012/01/20 12:05:10.321";
String output = input.substring(0, 10);  // Output : 2012/01/20

例2:SimpleDateFormatによる

入力文字列:2012/01/20 12:05:10.321

出力したい文字列:2012/01/20

この場合、別の書式が必要です。

String input = "2012/01/20 12:05:10.321";
DateFormat inputFormatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");
Date date = inputFormatter.parse(input);

DateFormat outputFormatter = new SimpleDateFormat("MM/dd/yyyy");
String output = outputFormatter.format(date); // Output : 01/20/2012

の使い方は SimpleDateFormat をチェックしてください。 SimpleDateFormat JavaDoc .