gpt4 book ai didi

Android TimeZone 土耳其 GMT

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:21 27 4
gpt4 key购买 nike

2016 年土耳其政府决定保留 GMT+3 时区以节省夏令时,但在 Android 上:

Calendar calendar = Calendar.getInstance();
TimeZone tz = TimeZone.getTimeZone("UTC");
calendar.setTimeInMillis(timestamp * 1000);
Date currentTimeZone = (Date) calendar.getTime();
calendar.add(Calendar.MILLISECOND, tz.getOffset(calendar.getTimeInMillis()));

所以问题是;
它显示的是 11 月之前的 GMT+3:
2016 年 10 月 26 日星期三 18:00:00 GMT+03:00
但在 11 月之后:
2016 年 11 月 7 日星期一 20:00:00 GMT+02:00

它应该在 GMT+3 保持一整年,这是 TimeZone 的 android lib 的一个特殊问题还是我做错了什么?
谢谢,

更新
虽然我已经添加了对时区和 gmt 参数的检查,
对于使用土耳其时区的 Android 设备,情况会有点困惑,因为在 10 月 29 日之后设备的时间将比正常时间早一个小时,直到 Android 发布更新并用户应用该更新。

最佳答案

参见 release note of tzdb-database对于版本 2016g:

Release 2016g - 2016-09-13 08:56:38 -0700

Changes to future time stamps

Turkey switched from EET/EEST (+02/+03) to permanent +03,
effective 2016-09-07. (Thanks to Burak AYDIN.)
Use "+03" rather than an invented abbreviation for the new time.

显然,您的 Android 设备仍在使用过时的时区版本。实际上,您有以下选项可以继续:

  • 等待新的 Android 版本(不吸引人,不推荐)。
  • 使用另一个外部库,如 Joda-Time-Android或者我的图书馆 Time4A已经使用 2016h(Threeten-ABP 仍然落后,实际上是在 2016e)。
  • 或者使用土耳其的固定偏移量编写您自己的 hack,例如 TimeZone.getTimeZone("GMT+03")

关于Android TimeZone 土耳其 GMT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40262842/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com