前一天的C#日期格式结果

时间:2018-10-25 19:41:56

标签: c#-4.0 datetime-format

这是C#代码:

employee.BirthDate.ToString("yyyy-MM-dd");

在我的计算机上使用来自SQL Server数据库的BirthDate =“ 1/1/1981”运行单元测试时,上面的代码将显示为“ 1981-01-01”。但是,在质量检查服务器上运行相同的代码时,结果为“ 1980-12-31”。

我尝试执行以下操作:

employee.BirthDate.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
employee.Birthdate.ToString("yyyy-MM-dd", new CultureInfo("en-US"));

但是这两行代码都会在质量检查服务器上产生相同的“ 1980-12-31”。

可能是什么原因造成的,什么解决方法?

注意:我的计算机和质量检查服务器上的时钟同步。另外,我在运行代码的QA服务器上的IIS中检查了.NET全球化,并且区域性设置为“不变式”。

2 个答案:

答案 0 :(得分:0)

我会检查以确保它不是时区/夏时制问题。

可能会返回未设置正确时区的内容,从而导致减去几个小时并将您带入前一天。

答案 1 :(得分:0)

以下代码可以达到目的:

employee.BirthDate.ToUniversalTime().ToString("yyyy-MM-dd");