Sitecore 在内容编辑器中以 24 小时格式显示时间

Sitecore Show Time in 24 Hours Format in the Content Editor

在项目中有一个字段类型 "DateTime"。对于内容编辑器中的此字段,输入时间的选项采用 12 小时格式(上午、下午)。如下图:

如何向内容编辑器显示 24 小时格式的时间。

谢谢!

您可以通过扩展 Sitecore.Shell.Applications.ContentEditor.DateTime class、在该控件内找到 TimePicker 并更改 Format 属性(其中默认设置为 t,这意味着将使用内容编辑器用户的标准语言环境)。老实说,我不认为应该为任何 Sitecore 解决方案推荐更改此设置,但如果需要,它是可行的。

首先,创建继承自 Sitecore.Shell.Applications.ContentEditor.DateTime 的自定义 class,例如:

namespace My.Assembly.Namespace.ContentEditor
{
    public class CustomDateTime : Sitecore.Shell.Applications.ContentEditor.DateTime
    {
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            TimePicker timePicker = FindTimePicker(this);
            if (timePicker != null)
            {
                timePicker.Format = "HH:mm";
            }
        }

        private TimePicker FindTimePicker(Control control)
        {
            if (control != null)
            {
                var timePicker = control as TimePicker;

                if (timePicker != null)
                {
                    return timePicker;
                }

                foreach (Control childControl in control.Controls)
                {
                    if ((timePicker = FindTimePicker(childControl)) != null)
                    {
                        return timePicker;
                    }
                }
            }
            return null;
        }
    }
}

现在在 web.config 中找到 <controlSources> 标签,并在该标签内添加以下行:

  <source mode="on" namespace="My.Assembly.Namespace.ContentEditor" assembly="My.Assembly" prefix="customcontent"/>

现在转到 Sitecore Desktop,切换到 core 数据库,找到 /sitecore/system/Field types/Simple Types/Datetime 项并更改 Control 字段到 customcontent:CustomDateTime:

切换回 master 数据库并检查任何日期时间字段,例如:

@Marek Musielak 回答很好,但正如他所写,真的不建议更改 Sitecore Solution 的默认设置。

所以我进行了更多搜索,找到了另一种方法,基于每个用户。在 Sitecore shell xx/sitecore/shell 中,用户还可以通过转到“控制面板”>“首选项”>“设置区域和语言选项”来更改它。