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

标签 c# datetime sitecore

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

var dateField = (DateField)item.Fields["Date"];
var itemDate = dateField.DateTime;

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

enter image description here

如您所见,DateTime 的日期是 9 月 13 日,而 Value 的日期是 9 月 14 日。

出现这个问题的原因是什么?如何从 DateField 获取正确的数据作为 DateTime

最佳答案

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

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

关于c# - Sitecore DateField 的 DateTime 属性显示错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32537840/

相关文章:

c# - 过滤集合 C# 的最快方法

sql-server - 将 ssis 表达式日期时间转换为 int

content-management-system - Sitecore - 访问内容项时出现服务器错误(蓝屏死机)

migration - 我们如何将两个 Sitecore 网站(单独的实例)合并为一个 Sitecore 实例

c# - 如何使用Solr Provider在Sitecore ContentSearch中控制嵌套查询的优先级?

c# - Mongo C# 驱动程序 - 包含过滤器

c# - 如何使用多个条件过滤 Directory.EnumerateFiles?

c# - 在 C# 中使用非托管 FindFirstVolume 通过 .NET 枚举卷

Java 从 LocalDateTime Bar 中减去 LocalDateTime foo

mysql - 用Mysql当前日期函数更新相应字段