1
UTC
形式で指定された日付をCET
形式の日付に変換したいと思います。UTCからCETへの日付の変換
問題は、それに応じて時間を加算または減算する必要があることです。
例:
Date = "2015-07-31 01:14:05"
私はドイツの日付(2時間を追加すること)に変換したいと思います:
2015-07-31 03:14:05"
マイコード:
private static Long convertDateFromUtcToCet(String publicationDate) {
//"2015-07-31 01:14:05"
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
//SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
Date date = null;
try {
date = simpleDateFormat.parse(publicationDate);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
calendar.setTime(date);
Date givenDate = calendar.getTime();
System.out.println("Original UTC date is: " + givenDate.toString());
TimeZone timeZone = TimeZone.getTimeZone("CET");
calendar.setTimeZone(timeZone);
Date currentDate = calendar.getTime();
System.out.println("CET date is: " + currentDate.toString());
long milliseconds = calendar.getTimeInMillis();
return milliseconds;
}
この版画:
Original UTC date is: Sat Jan 31 01:14:05 IST 2015
CET date is: Sat Jan 31 01:14:05 IST 2015
あなたはUTCとして日付を解析していない、それはおそらく問題 –
うあなたが密接に見ると、出力から何が間違っているかを見ることができます:解析可能なタイムゾーン情報がない場合、入力文字列 'SimpleDateFormat'の情報はあなたのタイムゾーンになります。この場合、' IST' Irelanでdまたはインドでは、3文字の時間帯の略語の使用に関する警告として機能する必要があります)。 – biziclop
Java8を使用している場合は、新しいデータ/カレンダーの構文をチェックしてください。新しいAPIははるかに理解しやすく使いやすいです。 –