在我的项目中,我从日期选择器中保存了选定的日期时间(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 应用中的本地时区设置,因为时区可能会有所不同,具体取决于部署位置。 避免ToUniversalTime
和ToLocalTime
,以及取决于本地计算机时区设置的DateTime.Now
和其他功能。