日付のみを保持でき、時刻コンポーネントを必要としない Java のデータ型はどれですか? たとえば、保存するだけ12/07/2012
です。日付のみのデータ型を持つデータベースとの間でデータを永続化する作業を行っているため、Java で最も同等のデータ型を探しています。
8 に答える
JDK から: java.sql.Date
:
JDBC がミリ秒値を SQL DATE 値として識別できるようにする、ミリ秒値の薄いラッパー。ミリ秒値は、から経過したミリ秒数を表します
January 1, 1970 00:00:00.000 GMT
。SQL DATE の定義に準拠するには
java.sql.Date
、インスタンスが関連付けられている特定のタイム ゾーンで時間、分、秒、およびミリ秒をゼロに設定することによって、インスタンスによってラップされるミリ秒の値を「正規化」する必要があります。
またはJodaTimeから:DateMidnight
またはLocalDate
(@cdeszaq に感謝)
DateMidnight
時刻コンポーネントが午前 0 時に固定される日付を定義します。このクラスはタイム ゾーンを使用するため、UTC タイム ゾーンが使用されない限り、午前 0 時はローカルです。このクラスは、任意の日の真夜中の時間を表すことを強調することが重要です。午前 0 時は 00:00 として定義されていることに注意してください。これは 1 日の始まりです。
Java 8 を使用している場合は、java.time.LocalDate
.
デートクラス。UNIX タイムスタンプを保持します。ほとんどのデータベースでは、タイムスタンプを保持するフィールドも指定できます。DateFormat を使用して、必要に応じてタイムスタンプをフォーマットできます。
残念ながら、java.util.Date
SQL では name を持つものTimestamp
です。日付のみの純粋な型はありません。javax.sql.Date
拡張java.util.Date
され、Java で日付操作にこの型を使用しても利点はありません。
私はApachecommons-lang
クラスを使用してこれを扱っていますDateUtils
:
Date myDate = DateUtils.truncate(timestamp, Calendar.DAY_OF_MONTH);
これにより、時刻部分が削除され、日付部分のみが残ります。
Date クラスを使用します。これはより良い方法です。
日付のみ(時間なし)を保持する方法を示しています
formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date= new Date();
Date todayWithOutTime =formatter.parse(formatter.format(date));
利用可能なDateクラスを使用します。