当我们为事件选择日期和时间时,Sitecore中的当前日期/时间选择器假设CM服务器的本地系统时间(在本例中为东方标准/夏令时间)。
很明显,我们需要一种方法让内容作者为事件选择时区。最初,我们决定提供一个预定义时区缩写的Droplist,如‘PST’、'EST‘、'EDT’等。虽然该解决方案可以用于显示目的,但在为事件动态生成.ICS日历约会时,我们立即遇到了问题。
为了生成.ICS文件,我们需要一种方法将事件的开始日期和结束日期(同样是EST或EDT)和时区缩写(EST、PST等)结合起来。转换为UTC DateTime对象。
这是我的理解,,所以我相信我们被困在一个列表的缩写和它们的UTC偏移值。仅仅给内容作者一个时区列表是不够的,比如GMT -08:00,GMT -07:00等等,我们需要加入某种缩写或名字来帮助他们做出选择。
在选择时区时,塞托雷是否有内置的字段或实用程序?
发布于 2011-08-25 20:17:11
Sitecore没有内置的模板来存储时区,但是您可以轻松地创建自己的模板。我建议您将Droplist更改为Droplink (液滴按名称引用引用的项,液滴按GUID引用引用的项),然后为源创建一个新的模板。您的新模板可以称为Timezone。每个项目的名称可以是友好的名称(例如EDT、PDT等),并且项目上可以有一个字段,一个偏移量。在代码中,当您确定从现在的Droplink中选择了哪些项时,您可以访问它上的偏移字段来确定实际的偏移量。就像这样:
ReferenceField timezoneSelected = item.Fields["Timezone"];
string offsetVal = timezoneSelected.TargetItem.Fields["Offset"].Value;
// parse out the true value from offsetVal发布于 2015-08-21 08:42:45
“在Sitecore版本8.0及更高版本中,只应将UTC日期/时间值保存到数据库中。”https://doc.sitecore.com/en/developers/102/sitecore-experience-manager/storing-date-time-values-in-databases.html。
关于此事的更多信息:https://doc.sitecore.com/en/developers/102/sitecore-experience-manager/utc.html
发布于 2014-07-23 09:11:33
试着将所有的日期/时间保存在UTC,并在渲染时间将其转换为EST、PTS等。通过使用.Net TimeZoneInfo类,您可以简单地在呈现时将存储的UTC值转换为合适的时区。这也将解决白天照明的问题。
Sitecore对此不太支持,但是为了使内容作者更容易,您可以扩展DateTime字段,使其在进入CMS时包含时区下拉。扩展字段类型应处理UTC与内容作者首选时区之间的转换。
您还可以扩展用户配置文件,以便内容作者可以存储他们喜欢的时区。您还应该在UTC时间运行您的服务器,但是由于您已经与EST一起生活,因此更改它可能不是一个好主意。
https://stackoverflow.com/questions/7195770
复制相似问题