我目前正在开发 ac# 应用程序,并且正在使用纪元时间戳并将其转换回正常的日期和时间。这几乎是有效的,除了目前它返回的时间落后 1 小时,因为它没有考虑夏令时。如何确定用户是否处于夏令时的时区并根据需要更正时间。
感谢您的任何帮助,您可以提供。
您尚未指定如何从纪元时间戳转换为 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();
重要的是Kind
of the DateTime
is not Local
。如果不是这种情况,您可以自己修改它:
var date = DateTime.Now; // Should be created from epoch time stamp.
date = DateTime.SpecifyKind(date, DateTimeKind.Utc);
var localDate = date.ToLocalTime();
在 Windows 上,转换基于执行代码的当前用户的时区和夏令时设置。