将日期保存为CQ5中的时间戳

时间:2014-03-03 15:38:26

标签: cq5 aem

我需要使用CQ5 xtype'datefield',因为我只需要作者输入的日期而不是时间。

但问题是'datefield'将JCR中的日期保存为字符串而不是时间戳[就像使用'datetime'时那样。]

是否有解决方法将日期保存为时间戳?

2 个答案:

答案 0 :(得分:3)

我不认为可以使用datefield将日期保存为时间戳,而无需干预默认脚本。但作为解决方法,您可以使用 datetime 并将属性 hideTime 设置为true,以隐藏时间部分,以便作者无法创作它。 / p>

配置的json如下所示。

{   "fieldLabel":"Date",
    "xtype":"datetime",
    "hideTime":true,
    "name":"./date",
    "defaultValue":"now",
    "jcr:primaryType":"cq:Widget"
}

您可以将 defaultValue 添加到'now',如果您希望将当前日期初始化为默认值,如果未由作者明确填写,则可以被忽略了。

注意:defaultValue:'now'在IE中对我不起作用(我使用IE 11并通过开发工具模拟以前的版本),但它在Chrome和Mozilla中运行良好。< / p>

答案 1 :(得分:2)

jsp的粗略解决方法:

<%@page import="java.text.SimpleDateFormat,java.util.Date"%>

<%
SimpleDateFormat displayDateFormat = new SimpleDateFormat("dd MMM yyyy");
String dateField = properties.get("nameofdatefield", "");
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy");
Date formattedDate = sdf.parse(dateField);
String formattedDateStr = displayDateFormat.format(formattedDate);

out.println('Example of formated string'+formattedDateStr);
%>

从上面的内容中,您还可以将其转换为日期对象,具体取决于您希望操作的内容。

如果以上示例有帮助,请告诉我