Sitecore DateField的DateTime属性显示错误的日期

Yur*_*hov 3 c# datetime sitecore

在我的Sitecore项目中,我使用DateTime(Sitecore的类型)字段作为一个Item.我试图通过以下代码获得此值:

var dateField = (DateField)item.Fields["Date"];
var itemDate = dateField.DateTime;
Run Code Online (Sandbox Code Playgroud)

itemDate包含错误的日期.我们来检查dateField.Value:它包含格式正确的日期:yyyymmddThhmmss.您可以在以下屏幕截图中看到:

在此输入图像描述

你可以看到DateTime的日期是9月13日,但是Value日期是9月14日.

这个问题有什么原因?如何从得到正确的数据DateField作为DateTime

Yur*_*hov 5

我找到了如何从DateFieldas获取正确数据的解决方案DateTime

var dateField = (DateField)item.Fields["Date"];
var itemDate = Sitecore.DateUtil.IsoDateToDateTime(dateField.Value);
Run Code Online (Sandbox Code Playgroud)


Mar*_*les 5

这是因为内部Sitecore以UTC格式存储所有日期.如果你的时区与UTC有很大差异 - 你可能会遇到这种情况.使用Sitecore.DateUtil让Sitecore为您做"肮脏的工作".

https://doc.sitecore.net/sitecore_experience_platform/setting_up_and_maintaining/utc/datetime/datetime_best_practices