gpt4 book ai didi

java - Android:时间和时区问题

转载 作者:行者123 更新时间:2023-12-02 01:05:49 27 4
gpt4 key购买 nike

我从服务器获取有关某个事件的时间数据(UTC)。例如,它应该在 5 小时内发生。

但是当用户更改设备时间(例如 +2 小时)时,事件发生前的时间变为 3 小时(而不是 5 小时)

但是如果用户更改的不是时间而是时区,那么一切正常。然后我决定检查时区偏移。即使我将时间更改为 +2 小时,系统仍然认为我处于我所在时区的时间。

时间更改前后的时区偏移量相同。

那该怎么处理呢?

我希望如果用户更改时间 +2 小时,那么仍然显示事件发生前的 5 小时,而不是 3 小时。

我使用Calendar.getInstance().time.time来检查我的时间。

碰巧系统时间是 15:00, Activity 将在 20:00,用户将时间更改为 19:00,应用程序显示 Activity 将在一小时后进行。

最佳答案

如果您获得 UTC 时间,则可以将其与 UTC 时间进行比较(当然,UTC 时间不会前后移动)。使用 java.time 事情变得更容易。

例如:

 Instant fromServer = serverTime.toInstant(ZoneOffset.UTC);
Instant now = Instant.now();
long diff = now.until(fromServer, ChronoUnit.HOURS);

关于java - Android:时间和时区问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60076807/

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