您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在ASP.NET中使用时区?

如何在ASP.NET中使用时区?

第一件事是确保数据位于哪个时区。我建议确保将您存储的任何DateTime存储在UTC时间中(使用DateTime.ToUniversalTime()来保存它)。

当要为用户存储提醒时,您将需要当前的UTC时间,添加删除用户的时区差,然后将新时间转换回UTC。这就是您要存储在数据库中的内容

然后,当您要检查要发送的提醒时,只需根据UTC时间在数据库中查找要立即发送的提醒;本质上是获得所有时间戳都在之前的提醒DateTime.Now.ToUniversalTime()

一些实现细节:您可以从TimeZoneInfo.GetSystemTimeZones()方法获取时区列表;您可以使用这些时间显示用户的时区列表。如果Id从选定的时区存储属性,则可以从中创建一个TimeZoneInfo类实例,并为给定的本地日期/时间值计算UTC时间:

TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("<the time zone id>");
// May 7, 08:04:00
DateTime userDateTime = new DateTime(2009, 5, 7, 8, 4, 0);
DateTime utcDateTime = userDateTime.Subtract(tzi.BaseUtcOffset);
dotnet 2022/1/1 18:14:41 有511人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶