- 私のアプリケーションには異なるタイムゾーンをサポートする必要があります。
- 私のJVMを挿入するには、デフォルトでUTC時刻があるので、@CreationTimestampとJUpタイムゾーンを参照する@UpdateTimestampの助けを借りて、UTC時刻として作成および更新された日付を挿入して休止状態にします。
- 各リクエストは異なるタイムゾーンから送信されています。タイムゾーンに基づいて、その特定のタイムゾーンまでのUTC時間を解析する必要があります。
- 私はすべてのレコードに対して手動で日付を解析したくありません。フェッチ中にタイムゾーンを指定した場合のように、休止状態にオプションがあります。与えられたタイムゾーンごとに作成され、更新された日付を取得できます(タイムゾーンはフェッチのために動的です)。
答えて
datetimeのベストプラクティスに関しては、すでにいくつかのスレッドがあります。 Daylight saving time and time zone best practices
は、私は次のことを示唆している:
- 常にバックエンドとDB内UTCなど、すべての日付時刻を扱います。
- クライアントにdatetimeをUTCとして転送します。
- クライアントのUTC datetimeをlocaldatetimezoneに変換します。表示と更新の目的。
私の経験から、クライアントがすべてのローカル日時/ゾーン変換を処理し、すべての通信およびバックエンドの用途にUTCを使用することをコミットするのが最善の方法です。
ウェブページに直接日付をダンプする場合は、http://momentjs.com/のようなjsライブラリを使用して日付をロケールdatetimeに変換できます。
現在のところ、私はあなたがUIと休憩サービスのために言ったステップを実装しようとしています。与えられたタイムゾーンごとに日付を指定する必要があります –
ここでは、localdatetimezoneの変換に関するスレッドが見つかりました:https://stackoverflow.com/a/34605826/ 2067875 したがって、残りのリクエストで要求されたタイムゾーンを取得した後、これで必要なタイムゾーンに答えを変換することができます。 –
変換するいくつかの例の下のタイムゾーン で日付を変換するユーティリティ(汎用メソッド)を作成できます。
public static Date buildUTCDate(String dateString) throws ParseException {
SimpleDateFormat dateFormat = new SimpleDateFormat(SecureCareConstant.SQL_TIMESTAMP_FORMAT);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
return dateFormat.parse(dateString);
}
public static String dateToString(Date date) {
return new SimpleDateFormat(SecureCareConstant.SQL_TIMESTAMP_FORMAT).format(date);
}
public static Date buildUTCDate(Date date) {
SimpleDateFormat fromDateFormat = new SimpleDateFormat(SecureCareConstant.SQL_TIMESTAMP_FORMAT);
SimpleDateFormat toDateFormat = new SimpleDateFormat(SecureCareConstant.SQL_TIMESTAMP_FORMAT);
toDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateString = new SimpleDateFormat(SecureCareConstant.SQL_TIMESTAMP_FORMAT).format(date);
try {
return fromDateFormat.parse(toDateFormat.format(fromDateFormat.parse(dateString)));
} catch (ParseException e) {
LOGGER.error("ParseException in buildUTCDate()", e);
}
return null;
}
public static Date getCurrentTimeZoneDate(final Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
TimeZone z = c.getTimeZone();
int offset = z.getRawOffset();
if (z.inDaylightTime(new Date())) {
offset = offset + z.getDSTSavings();
}
int offsetHrs = offset/1000/60/60;
int offsetMins = offset/1000/60 % 60;
c.add(Calendar.HOUR_OF_DAY, (+offsetHrs));
c.add(Calendar.MINUTE, (+offsetMins));
return c.getTime();
}
public static String toLocalTime(Date dateUTC) {
if (dateUTC == null) {
return StringUtils.EMPTY;
}
SimpleDateFormat dateFormat = new SimpleDateFormat(SecureCareConstant.WEB_SERVICE_DATE_FORMAT);
return dateFormat.format(new Date(dateUTC.getTime() + TimeZone.getDefault().getOffset(dateUTC.getTime())));
}
- 1. 休止状態を取得
- 2. 休止状態で休止状態
- 3. 休止状態のoracleデータの取得
- 4. 休止状態のセッションが休止状態でヌルである
- 5. 休止状態:休止状態の接続を変更する
- 6. 休止状態:
- 7. (休止状態)
- 8. 休止状態
- 9. 休止状態:
- 10. 休止状態を使用してデータベースからレコードを取得する
- 11. Visual Basic.NETでスリープ状態/休止状態/起床イベントを取得する
- 12. 休止状態5でObjectNameNormalizerを取得する方法
- 13. たちは休止状態
- 14. 休止状態:私は休止状態を勉強
- 15. 休止状態でカスタムマップを設定
- 16. 休止状態での例外設定
- 17. 休止状態でのトランザクション
- 18. は休止状態
- 19. データベース+休止状態
- 20. ロンボク(休止状態)
- 21. 休止状態:session.load
- 22. 休止状態:エラーサブクエリ
- 23. 休止状態 - リンクエンティティ
- 24. 休止状態4
- 25. が休止状態
- 26. は休止状態
- 27. 休止状態:クエリメタデータ
- 28. と休止状態
- 29. 休止状態 - 別
- 30. が休止状態
してくださいまた、このリンクを見てhttps://stackoverflow.com/questions/46493135/can-hibernate-convert-date-field-into-given-timezone-at-transaction-or-session-l –