Bil*_*ani 3 c# asp.net datetime
我有一个DateTimeOffset变量,其值为11-11-1989 16:00:00 +03:30。我可以ToLocalTime()在上面调用method,它显示11-11-1989 18:00:00 +05:30。(我在印度:p)
我正在寻找这样的东西:
variable1.ToOffset(<timespan>)
如果我给此功能一个timespan3个小时的时间,它将返回我11-11-1989 19:00:00 +06:30。
我试图更改偏移量,但offset属性为只读。有人知道任何解决方法吗?
Sam*_*ers 12
对于未来的读者:我有一个DateTimeOffset没有时区的解析。因此,要仅更改时区而不影响实际时间,您必须像底层代码一样再次减去时间跨度。
例如2018-03-27T11:00:00 +00:00 => 2018-03-27T11:00:00 +02:00
static DateTimeOffset ChangeUtcToCest(DateTimeOffset original)
{
TimeZoneInfo cetInfo = TimeZoneInfo.FindSystemTimeZoneById("Central Europe Standard Time");
DateTimeOffset cetTime = TimeZoneInfo.ConvertTime(original, cetInfo);
return original
.Subtract(cetTime.Offset)
.ToOffset(cetTime.Offset);
}
Run Code Online (Sandbox Code Playgroud)