0

私が読んだことから、JPAで日付を扱うときに選択できるTemportalTypesには3つのタイプがあります。彼らです:

DATE
          Map as java.sql.Date
TIME
          Map as java.sql.Time
TIMESTAMP
          Map as java.sql.Timestamp

例として andを使用しTIMESTAMPました。日付は次のように保持されます。2014-10-10 02:12:39

私が気付いたのは、日付で AM/PM を失っていることです。私の日付が String として入ったと仮定すると2014-10-10 02:12:39 PM、それは として保存され2014-10-10 02:12:39ます。私がアクセスしようとしたときAMPM私の日付形式はMMM dd, yyyy HH:mm:ss a.

AM/PM 情報をデータベースに保持するには、どの TemporalType を使用すればよいですか?

4

2 に答える 2

1

AM/PM/24H は日付の形式です。JavaDateなどでは、1970 年 1 月 1 日 00:00:00 からのミリ秒を含むCalendarとして日付を格納します。long

JPA エンティティに日付を格納するときは、通常、Calendarインターフェイスを使用してフィールドに注釈を付けますTemporalType.TIMESTAMP(これにより、hh:mm:ss 情報が保持されます)。

@Temporal( TemporalType.TIMESTAMP )
privete Calendar lastUpdated;

要約すると、これはロケールに依存するため、データベースに AM/PM 情報を保存することはできません。たとえば、私の国では、日付に 24 時間形式を使用していますが、明らかに 12H+AM/PM を使用しています。日付を正しく表示するには、ユーザーのロケールに対応する形式を使用する必要があります。

于 2014-10-10T15:39:14.090 に答える
0

ええと... AM/PM を「失う」ことはできませ。 org/wiki/24-hour_clock .

時間/日付を好きなようにフォーマットするだけです: https://stackoverflow.com/a/18734471/351861

于 2014-10-10T15:39:05.283 に答える