[英]Get date from device and convert it to GMT+4
我正在尝试查找android手机的时区。 因为我想获取日期对象,但我想使用GMT + 4格式。 我看到的所有其他答案都将转换来自API请求的时间(已知时区)。 我该怎么做?
其他方法可能是将来自我的GMT + 4时间从服务器转换为设备的本地时间。
最好使用实时区域,而不仅仅是偏移+04。 例如:
OffsetDateTime currentDateTimeInGeorgia = OffsetDateTime.now(ZoneId.of("Asia/Tbilisi"));
System.out.println(currentDateTimeInGeorgia);
此代码段仅输出:
2018-09-13T19:18:35.642592 + 04:00
请替换您自己的时区。 如果您确实坚持使用GMT + 4,请使用ZoneOffset.ofHours(4)
。
OffsetDateTime
,旧的Date
类不能包含偏移量或时区,而现代的OffsetDateTime
可以。 Date
类的设计也很差,因此请考虑使用java.time(现代Java日期和时间API)。
如您所见,上面没有使用设备时区。 如果仍然需要此功能:
ZoneId deviceTimeZone = ZoneId.systemDefault();
System.out.println(deviceTimeZone);
输出示例:
亚洲/迪拜
是的, java.time
在较新和较旧的Android设备上java.time
正常运行。 它至少需要Java 6 。
org.threeten.bp
导入日期和时间类。 java.time
。 java.time
。 java.time
到Java 6和7的java.time
移植(JSR-310的ThreeTen)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.