Der*_*ker 5 c# asp.net timezone sitecore sitecore6
当我们选择事件的日期和时间时,Sitecore中的当前日期/时间选择器将假定CM服务器的本地系统时间(在我们的情况下为东部标准/夏令时).
很明显,我们需要一种方法让内容作者为事件选择时区.最初,我们决定提供一个Droplist预定的时区的缩写,如'PST",'EST’,'EDT’等.虽然这个解决方案为显示目的OK的,我们立即试图动态生成.ICS时遇到了问题日历约会活动.
为了生成.ICS文件,我们需要一种方法将事件的开始和结束日期(再次在EST或EDT中)和时区缩写(EST,PST等)组合成UTC DateTime对象.
据我所知,ASP.NET不支持时区缩写,因此我认为我们不得不维护缩写列表及其UTC偏移值.仅仅为我们的内容作者提供GMT -08:00,GMT -07:00等时区列表是不够的,我们需要包含某种缩写或名称来帮助他们进行选择.
Sitecore是否有任何内置字段或实用程序来选择时区?
Sitecore没有用于存储时区的内置模板,但您可以轻松创建自己的模板来执行此操作.我建议您将您更改Droplist
为a Droplink
(一个droplist按名称引用引用的项目,droplink通过GUID引用引用的项目)然后为源创建一个新模板.您的新模板可以称为时区.每个项目的名称可以是友好名称(例如EDT,PDT等),项目上可以有一个字段,即偏移量.在您的代码中,当您确定从现在Droplink中选择的项目时,您可以访问其上的"偏移"字段以确定实际偏移量.像这样的东西:
ReferenceField timezoneSelected = item.Fields["Timezone"];
string offsetVal = timezoneSelected.TargetItem.Fields["Offset"].Value;
// parse out the true value from offsetVal
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2933 次 |
最近记录: |