如何将WET/WEST时间转换为UTC

本文关键字:时间 转换 UTC WEST WET | 更新日期: 2023-09-27 18:15:11

在一个应用程序中,我将所有日期保存为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();

但是testNowUtc变得和现在一样,而不是像现在的Utc

我该如何解决这个问题?

**更新**

我尝试了以下方法:

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.

我是不是错过了什么?

如何将WET/WEST时间转换为UTC

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

TimeZoneInfo的关键在于它可以自动进行夏令时。