我需要使用CQ5 xtype'datefield',因为我只需要作者输入的日期而不是时间。
但问题是'datefield'将JCR中的日期保存为字符串而不是时间戳[就像使用'datetime'时那样。]
是否有解决方法将日期保存为时间戳?
答案 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);
%>
从上面的内容中,您还可以将其转换为日期对象,具体取决于您希望操作的内容。
如果以上示例有帮助,请告诉我