簡體   English   中英

從設備獲取日期並將其轉換為GMT + 4

[英]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);

輸出示例:

亞洲/迪拜

問題:我可以在Android上使用java.time嗎?

是的, java.time在較新和較舊的Android設備上java.time正常運行。 它至少需要Java 6

  • 在Java 8和更高版本以及更新的Android設備中(有人告訴我API級別為26),內置了現代API。
  • 在Java 6和7中,獲取ThreeTen Backport,即新類的Backport(JSR 310的ThreeTen;請參見底部的鏈接)。
  • 在較舊的Android上,請使用Android版本的ThreeTen Backport。 它稱為ThreeTenABP。 並確保使用子包從org.threeten.bp導入日期和時間類。

鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM