以下のコードは、ローカル タイムゾーン (米国東部標準時間) で正しい時刻を表示することを期待していますが、現在の時刻より 5 時間早く時刻を戻し続けています。私のuserTimeZoneOffset
値は -300 です。これは、タイムゾーンの UTC からの正しいオフセット分です。dateAndTimeFormat
私にとっては「MM/dd/yyyy h:mm a」に設定されています。
currentDateAndTime
以下の変数を取得して、現在のタイムゾーンではなく UTC に基づいて計算するにはどうすればよいですか?
String dateAndTimeFormat = i18nUtil.getValue(locale, "dateAndTimeFormat");
SimpleDateFormat sdf = new SimpleDateFormat(dateAndTimeFormat);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
if (userTimeZoneOffset != null) {
calendar.add(Calendar.MINUTE, userTimeZoneOffset);
}
String currentDateAndTime = sdf.format(calendar.getTime());
return currentDateAndTime;