我希望展示一个事件的日期和时间,该事件将根据用户的时区进行管理。为了检查时区,我将我的系统时区更改为另一个时区,但我的代码仍然获取本地时区。 以下是我的代码:
我正在使用Cassendra数据库和C# .NET MVC。
DateTime startTimeFormate = x.Startdate;
DateTime endTimeFormate = x.Enddate;
TimeZone zone = TimeZone.CurrentTimeZone;
DateTime startTime = zone.ToLocalTime(startTimeFormate);
DateTime endTime = zone.ToLocalTime(endTimeFormate);
DateTimeOffset
而不是DateTime
。至于您的问题,x.StartDate
和x.EndDate
的DateTimeKind
值是什么?本地时间、UTC还是未指定?只有在想要将UTC转换为本地时间时,ToLocalTime
才有意义。在其他情况下,唯一合乎逻辑的结果是返回具有“Local”DateTimeKind
的相同日期时间值。 - Panagiotis Kanavos未指定
的,因为数据库提供程序不知道它们代表哪种日期或使用哪个偏移量。 - Panagiotis KanavosDateTime
值从一个时区转换为另一个时区,请使用TimezoneInfo.ConvertTime。 - Panagiotis Kanavos