0

我目前正在开发 ac# 应用程序,并且正在使用纪元时间戳并将其转换回正常的日期和时间。这几乎是有效的,除了目前它返回的时间落后 1 小时,因为它没有考虑夏令时。如何确定用户是否处于夏令时的时区并根据需要更正时间。

感谢您的任何帮助,您可以提供。

4

1 回答 1

4

您尚未指定如何从纪元时间戳转换为 aDateTime但纪元时间戳是自 1970-01-01 00:00:00 UTC 以来经过的秒数,因此我假设您有 UTC DateTime。您可以使用以下代码将其转换为考虑夏令时的本地时间戳:

var date = DateTime.UtcNow; // Should be created from epoch time stamp.
var localDate = date.ToLocalTime();

重要的是Kindof the DateTimeis not Local。如果不是这种情况,您可以自己修改它:

var date = DateTime.Now; // Should be created from epoch time stamp.
date = DateTime.SpecifyKind(date, DateTimeKind.Utc);
var localDate = date.ToLocalTime();

在 Windows 上,转换基于执行代码的当前用户的时区和夏令时设置。

于 2012-09-16T13:39:53.800 回答