私は、UTCタイムスタンプを他のゾーン固有のタイムスタンプに変換する必要があるという要件に取り組んでいます.Belowは異なるタイムゾーンのリストです。UTCタイムスタンプを他のタイムゾーン固有の時刻に変換する
CET UTC+0100
CST UTC+0800
CST UTC-0600
EST UTC-0500
IST UTC+0530
MET-1METDST
SGT UTC+0800
SST-8
public static String convertUTCTimeStampToOtherZoneTimestamp(Timestamp timestamp,String timeZone){
String zoneSpecificTimeStamp="";
try {
DateFormat gmtFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
TimeZone zoneTime = TimeZone.getTimeZone(timeZone);
gmtFormat.setTimeZone(zoneTime);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String inputDateString = sdf.format(timestamp);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
zoneSpecificTimeStamp=gmtFormat.format(sdf.parse(inputDateString));
} catch (ParseException e) {
e.printStackTrace();
return zoneSpecificTimeStamp;
}
return zoneSpecificTimeStamp;
}
上記のコードは、EST、PST、ISTのようなタイムゾーンのためではなく、プログラムが間違った結果を与えているリストに記載された他のタイムゾーンの作業罰金です。このための正しい解決方法で私に更新してください
これは何度も尋ねられています。まず検索してください。ヒント:「CET」ではなく、「ヨーロッパ/パリ」のようなタイムゾーン名を使用する必要があります。 –
彼は実際には正しいです、同じ地理的な場所は夏と冬に異なるタイムゾーンを持っています。 – hoaz
java 8を使用している場合は、zoneddateを試してみてください。https://docs.oracle.com/javase/8/docs/api/java/time/ZonedDateTime.html – Maverick