TimeZoneを取得するにはUTC形式で
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-YYY HH:mm:ss Z",Locale.ENGLISH);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
return simpleDateFormat.format(new Date());
上記の形式は22-10-2017午前18時05分50秒UTCような結果を提供します。
上記の形式は22-10-2017 18時05分50秒UTCような結果を提供しますローカルフォーマットでのタイムゾーン(電話またはデバイスのタイムゾーン)
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-YYY HH:mm:ss Z",Locale.ENGLISH);
simpleDateFormat.setTimeZone(TimeZone.getDefault());
return simpleDateFormat.format(new Date());
または
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-YYY HH:mm:ss Z",Locale.ENGLISH);
return simpleDateFormat.format(new Date());
を取得するには+5:30(ヒント:インド-For)。
又は
上記フォーマットは22-10-2017午前18時05分50秒のような結果が得られるIS T.(ヒント:-Forインド)
ヒント: - uは日に、このフォーマットされた文字列を渡す場合
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-YYY HH:mm:ss Z",Locale.ENGLISH);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date d = null;
try {
d =simpleDateFormat.parse("22-10-2017 18:05:50 UTC");
} catch (ParseException e) {
e.printStackTrace();
}
return d.toString();
以下のように返される出力は、ローカルタイムゾーンやデフォルトのタイムゾーンすなわちデバイスのタイムゾーンと同じになります。 (22-10-2017 18:05:50 UTC + 5:30または22-10-2017 18:05:50 IST)。
上記のタイムゾーンセットがUTCであっても、コンテンツを自分のDateオブジェクトに渡すと、デバイスタイムゾーンのみで出力されます。
あなたが正しいです、 'java.util.Date'はタイムゾーンを認識していません。 'new SimpleDateFormat'を作成すると、JVMのデフォルトのタイムゾーンが使用されるため、' Timezone.getDefault() 'の設定は冗長です(そのため、同じ結果が得られます)。書式設定時には、タイムゾーンが常にバックグラウンドで表示されます。 –