C# 如何将湿/西时间转换为UTC?

C# 如何将湿/西时间转换为UTC?,c#,C#,在应用程序中,我将所有日期保存到数据库中作为UTC 但是,用户在里斯本时区中插入日期 我查了一下,里斯本时区在夏天是西边的,剩下的时间都是潮湿的 WET = Western European Time WEST = Western European Summer Time 然后我尝试了以下方法: DateTime now = DateTime.Now; DateTime nowUtc = DateTime.UtcNow; DateTime.SpecifyKind(now, DateTimeK

在应用程序中,我将所有日期保存到数据库中作为UTC

但是,用户在里斯本时区中插入日期

我查了一下,里斯本时区在夏天是西边的,剩下的时间都是潮湿的

WET = Western European Time
WEST = Western European Summer Time
然后我尝试了以下方法:

DateTime now = DateTime.Now;
DateTime nowUtc = DateTime.UtcNow;

DateTime.SpecifyKind(now, DateTimeKind.Local);

DateTime testNowUtc = now.ToUniversalTime();
DateTime now = DateTime.Now;
DateTime nowUtc = DateTime.UtcNow;

String zone = TimeZoneInfo.Local.IsDaylightSavingTime(now) ? TimeZoneInfo.Local.DaylightName : TimeZoneInfo.Local.StandardName;

DateTime testNowUtc = TimeZoneInfo.ConvertTimeToUtc(now, TimeZoneInfo.FindSystemTimeZoneById(zone));
但是testNowUtc与现在相同,而不是与nowUtc相同

我怎样才能解决这个问题

**更新**

我尝试了以下方法:

DateTime now = DateTime.Now;
DateTime nowUtc = DateTime.UtcNow;

DateTime.SpecifyKind(now, DateTimeKind.Local);

DateTime testNowUtc = now.ToUniversalTime();
DateTime now = DateTime.Now;
DateTime nowUtc = DateTime.UtcNow;

String zone = TimeZoneInfo.Local.IsDaylightSavingTime(now) ? TimeZoneInfo.Local.DaylightName : TimeZoneInfo.Local.StandardName;

DateTime testNowUtc = TimeZoneInfo.ConvertTimeToUtc(now, TimeZoneInfo.FindSystemTimeZoneById(zone));
但当我运行它时,我得到了错误:

The time zone ID 'GMT Daylight Time' was not found on the local computer.
我错过什么了吗

DateTime now = DateTime.Now;
DateTime nowUtc = DateTime.UtcNow;

DateTime testNowUtc = TimeZoneInfo.ConvertTimeToUtc(now, TimeZoneInfo.Local);

TimeZoneInfo的要点是它可以自动进行夏令时。

我根据您的建议添加了一个更新,其中包含代码,但我收到一个错误,错误是:“本地计算机上找不到时区ID‘GMT夏令时’。”时区名称是“GMT标准时间”。夏令时是否有效只取决于日期。像“WET”这样的缩写词是任意的、模棱两可的,到处都是“CST”。是的,我试过了,但没有给我正确的时间。它给我一个小时的差异。。。我想是因为夏天的缘故……不。它应该给你正确的答案。然而,您最初的问题是在西欧时间,而您的计算机设置为GMT。您没有给我正确的信息。