更改Apache Directory Studio中

时间:2017-04-27 21:25:49

标签: apacheds

我一直试图弄清楚这一点,这让我发疯了。我的LDAP中有一些属性是时间/日期戳。其中一些在z时间显示为20170426221554Z,而其他显示为更易读的形式Apr 26, 2017 4:15:54 PM MDT (20170426221554Z)。我已经查看了设置,帮助菜单以及在线的众多地方,我无法弄清楚如何将格式更改为更具可读性。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

查看Apache Directory Studio代码,您无法通过用户界面更改时间格式。

定义为广义时间的属性(语法OID 1.3.6.1.4.1.1466.115.121.1.24)使用您的语言环境的默认时间格式显示。如果该值无效,则显示原始字符串。

从org.apache.directory.studio.valueeditors.time.GeneralizedTimeValueEditor中提取:

public String getDisplayValue(IValue value) {
    String displayValue = super.getDisplayValue(value);
    if (!showRawValues()) {
        DateFormat targetFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.LONG);
        try {
            GeneralizedTime generalizedTime = new GeneralizedTime(displayValue);
            Date date = generalizedTime.getCalendar().getTime();
            displayValue = targetFormat.format(date) + " (" + displayValue + ")"; //$NON-NLS-1$ //$NON-NLS-2$
        } catch (ParseException pe) {
            // show the raw value in that case
        }
    }
    return displayValue;
}

如果属性不是广义时间,那么它将以不同方式显示(即目录字符串,语法OID 1.3.6.1.4.1.1466.115.121.1.15,显示为字符串)

您可以通过右键单击属性并选择属性然后选择属性来检查Apache Directory Studio中属性的语法(我使用的是版本2.0.0.v20161101-M12)。语法信息大约是一半。 Attribute Properties

或者搜索base:ou-schema并过滤您的属性,例如:

(&
    (objectClass=metaAttributeType)
    (|
        (m-name=loginTime)
        (m-name=modifyTimestamp)
    )
)

将列出属性。

如果您拥有LDAP架构,则可以更改属性语法以使用“通用时间”。