c# - 将某人的本地时间转换为 UTC 时间

标签 c# .net datetime dst

我有点迷失了时区:)

我的数据以 UTC 时间存储。 服务器在荷兰,所以我们住在 utc+1(现在,夏令时,在 utc + 2)

现在一个客户说:给我 8 月 5 日的数据。

所以我必须根据“他的时间”计算 UTC 时间。 为此我必须知道:

您的 utc 偏移量是多少(我们将其存储在他的个人资料中,假设为 utc -6) 你在夏令时吗(因为那时我们必须加 +1 并使 utc 偏移量为 -5)

然后我的问题:

  1. 请问.Net框架:XX国有夏令时吗?

  2. 请问 .Net 框架:此时 08-05-2010T00:00:00 是国家 XXX 夏令时吗?

我一直在尝试 .ToLocalTime(),但这只给我服务器上的本地时间,这不是我想要的,我想用用户的时区来计算,还有这样一个事实在那个特定的时间点,如果他/她处于夏令时

我也看过这个 VB 例子:

TimeZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time") 
Dim Dated As DateTime = TimeZoneInfo.ConvertTimeToUtc(TempDate, TimeZone) 

但是恕我直言,这并没有考虑到这个时区的用户是否在夏令时 (dst) 国家/地区。 例如,这个时区的一个用户在荷兰有夏令时,而另一个用户在另一个没有夏令时的国家。

最佳答案

您不能向框架询问特定国家 - 但您可以询问特定时区

TimeZoneInfo 确实考虑了 DST。 (哎呀,否则它不会有 IsDaylightSavingTime 方法。)如果您有两个用户,其中一个当前正在观察 DST 而另一个没有,那么他们不是 在同一时区。

如果您可以指定您所谈论的位置,我可以尝试找出涉及的时区。 (通常更容易找到 Olson 的名字,但找到 Windows ID 也不是不可能。)

关于c# - 将某人的本地时间转换为 UTC 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3412611/

相关文章:

c# - XStreamingElement 作为 XDocument 的一部分

.net - 如何清除HttpWebRequest的缓存

javascript - 如何在 d3 中为日期时间刻度设置正确的域

.net - 为什么 .NET 应用程序的内存使用量在最小化时似乎下降了?

c# - Json.NET,可以扩展SerializeXmlNode来检测数字吗?

c# - 如何获取当前执行的DLL的位置?

c# - NHibernate SysCache2 和查询缓存 - 无法避免 Select N+1?

django - 使用来自 django admin 的日期选择器

python - 使用 Python 代码按日期提取数据并另存为单独的 csv Datewise

c# - ASP.NET 存储交叉请求数据