我正在尝试将我的日期值以 UTC 格式存储到我的 SQL Server 数据库中,然后将它们转换为本地时间进行显示,似乎工作正常,我可以看到我存储的数据库日期值不同(我认为它已经转换为 UTC) ,检索它并显示也是准确的,直到我尝试通过在日期和时间选项(任务栏中 Windows 时间设置的右下角)中更改它来测试不同的时区,以便“迁移”自己。显然,尽管我更改为的时区有 3 小时的差异,但日期仍然与我在自己的国家一样。
可以以某种方式就在不同时区测试日期显示的方法提供建议吗?
谢谢。
将日期值存储到 SQL Server:
DateTime dateFrom = DateTime.Parse(startDateTime).ToUniversalTime();
DateTime dateTo = DateTime.Parse(endDateTime).ToUniversalTime();
parameters.Add(new SqlParameter("@StartDateTime", dateFrom));
parameters.Add(new SqlParameter("@EndDateTime", dateTo));
从数据库和显示中检索:
DateTime date = DateTime.UtcNow.ToLocalTime();
date = DateTime.Parse(dr["StartDateTime"].ToString()).ToLocalTime();
litDateTimeFrom.Text = date.ToString("dd MMM yy hh:mm tt");
date = DateTime.Parse(dr["EndDateTime"].ToString()).ToLocalTime();
litDateTimeTo.Text = date.ToString("dd MMM yy hh:mm tt");