[英]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.