ではAndroid
、現地時間を簡単に取得するための API がないようです。ネットを掘り下げると、クラスUTC
を使用して時間からのオフセットを計算するコードが見つかりました。TimeZone
final long timestamp = System.currentTimeMillis();
int offset = TimeZone.getDefault().getOffset(timestamp);
if (TimeZone.getDefault().inDaylightTime(Calendar.getInstance().getTime())) {
offset = offset - TimeZone.getDefault().getDSTSavings();
}
さて、このコードは私が必要としているもののほとんどですが、式が間違っていることがすぐに明らかになります。たとえばCET
、オフセットは 3600000 になりCEST
ますが、0 になります。これは間違っています (7200000 のはずです)。
明らかに、減算の代わりに加算を使用するようにコードにパッチを当てることができますが、元の作成者が減算が必要であると明示的に述べているため、これが安全かどうかはわかりません (私はそれが のためだったと思いますPST
)。
数式をすべてのタイム ゾーンで機能させるにはどうすればよいですか?