我需要创建一个DateTime,设置日期和时间,并使用特定的时区(例如:西亚标准时间、西欧标准时间等)。
必须保留夏令时,因此偏移量不可用,因为对于给定的时区,一年中的半年将会是+2小时,另一半则为+3小时。
然后我想将该日期转换为UTC。
我尝试以这种方式进行操作,以便稍后可以添加时区偏移量。但首先,我不喜欢这种解决方案,我担心在每年两次更改时间时会丢失一个小时;其次,我会收到以下错误:
"Utc DateTime实例的UTC Offset必须为0。"
var testTime = new DateTime(testDate.Year, testDate.Month, testDate.Day, 4, 0, 0, DateTimeKind.Utc);
var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("West Asia Standard Time");
var timezoneTime = TimeZoneInfo.ConvertTimeFromUtc(runTime, timeZoneInfo);
var offset = timeZoneInfo.GetUtcOffset(timezoneTime);
我想获取这种类型的代码
var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("West Asia Standard Time");
var testTime = new DateTime(testDate.Year, testDate.Month, testDate.Day, 4, 0, 0, timeZoneInfo);
var utcTime = testTime.ToUniversalTime();
总之,我希望有一种方法,我可以传递年份、月份、日期、小时、分钟和时区,然后返回一个UTC时间。
在JavaScript中存在库,其中给定的时区作为参数提供,但我必须在服务器端执行此操作。
DateTimeOffset
或者NodaTime
吗?它们可行吗? - mjwills