如何在 Azure Web 应用中保存手动选择的日期时间的 UTC



在我的项目中,我从日期选择器中保存了选定的日期时间(UTC)。它仅在应用程序在本地运行时保存 UTC 日期时间。部署到 Azure 后,它会从日期选取器保存选定的日期时间,而不考虑 UTC。

更新:

string selecteddate = "12/04/2016 05:30:15";
DateTime dt = Convert.ToDateTime(selecteddate).ToUniversalTime(); 

此代码在本地主机的数据库中保存UTC日期时间,但在Azure中不起作用

您使用

Convert.ToDateTime(selecteddate)创建的DateTime实例将具有DateTimeKind.Unspecified 。 因此,当您调用 ToUniversalTime 时,它会假设源值位于运行代码的计算机的本地时区。

在 Azure 上,该时区是 UTC,因此虽然.Kind将更改为 DateTimeKind.Utc ,但该值将保持不变。

如果您打算从特定时区转换它,请改用TimeZoneInfo.ConvertTimeToUtc,传递您关注的时区的特定TimeZoneInfo值。

通常,不要依赖 Web 应用中的本地时区设置,因为时区可能会有所不同,具体取决于部署位置。 避免ToUniversalTimeToLocalTime,以及取决于本地计算机时区设置的DateTime.Now和其他功能。

相关内容

  • 没有找到相关文章