我们最近更改了我们的应用程序,以尝试支持在记录时间的时区中显示时间。我们遇到了在夏令时更改时正确获取时间的问题。
我们通过单独存储偏移量来实现它,但每次都存储 UTC 时间。然后在显示时间时,我们将静态偏移量添加到 UTC 时间,以显示用户输入的时间。
我们遇到的问题是输入时间更改之前发生的时间。我们正在将输入的时间转换为 UTC,但转换回来通常需要一个小时。
显然问题是我们存储的是“当前”本地时间的偏移量,而不是用户输入时间所代表的时间偏移量。但是我们的大多数用户在活动过程中并没有关注时间的变化。因此,如果他们在 1:55 记录时间并且他们需要在 10 分钟后记录时间,他们将使用 2:05 而不是 3:05。
这似乎排除了使用 IsDaylightSavingTime 并使用“适当的”偏移量来改变显示时间。
所以我有点坚持如何显示用户输入的时间,尽管偏移量“应该”是多少。