如何在sightly html(AEM 6.1)中读取datetime属性
我的cq对话框中有一个属性,其xtype为datetime。值在cq中存储为“2016-04-11T03:00:00.000-04:00”,属性名称为eventDate 我想知道两件事-如何在sightly html(AEM 6.1)中读取datetime属性,aem,sightly,Aem,Sightly,我的cq对话框中有一个属性,其xtype为datetime。值在cq中存储为“2016-04-11T03:00:00.000-04:00”,属性名称为eventDate 我想知道两件事- 如何从这个属性中读取日期和时间 当我在Use类(Java类)中将这个日期作为参数传递时,它被传递为null。但是,当我传递currentPage.lastModified时,我可以看到日期值 任何指点都将受到高度赞赏。不确定使用的方法是否正确 为提供另一种解决方案—— 您可能会在包含datetime属性的节点上
任何指点都将受到高度赞赏。不确定使用的方法是否正确 为提供另一种解决方案—— 您可能会在包含datetime属性的节点上使用jcr api。
java.text.simpleDataFormat
api可用于高效提取日期和时间。
例如:
类似地,为了在datetime中持久化日期,您可以使用com.day.cq.commons.date.DateUtil
api
node.setProperty(propertyName, DateUtil.parseISO8601(DateUtil.getISO8601Date(Calendar.getInstance())))
不确定使用的方法是否正确 为提供另一种解决方案—— 您可能会在包含datetime属性的节点上使用jcr api。
java.text.simpleDataFormat
api可用于高效提取日期和时间。
例如:
类似地,为了在datetime中持久化日期,您可以使用com.day.cq.commons.date.DateUtil
api
node.setProperty(propertyName, DateUtil.parseISO8601(DateUtil.getISO8601Date(Calendar.getInstance())))
我想缺少的部分是,你没有在你的眼睛里添加。你应该有以下几点:
<div data-sly-use.eventUseObj = "com.test.models.EventModel" data-sly-unwrap />
现在这个日期可以很容易地用在过去,就像这样:
public class EventModel extends WCMUse {
private String eventDate;
@Override
public void activate() {
Calendar eventCalendar = getProperties().get("eventDate", Calendar.class);
DateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");
eventDate = outputFormat.format(eventCalendar.getTime());
}
}
${eventUseObj.eventDate}
这将在页面上打印日期的值。支持的日期模式有很多种,您可以选择所需的日期模式 我想缺少的部分是,您没有在您的内部添加。你应该有以下几点:
<div data-sly-use.eventUseObj = "com.test.models.EventModel" data-sly-unwrap />
现在这个日期可以很容易地用在过去,就像这样:
public class EventModel extends WCMUse {
private String eventDate;
@Override
public void activate() {
Calendar eventCalendar = getProperties().get("eventDate", Calendar.class);
DateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");
eventDate = outputFormat.format(eventCalendar.getTime());
}
}
${eventUseObj.eventDate}
这将在页面上打印日期的值。支持的日期模式有很多种,您可以选择所需的日期模式 下面是一个简单的javascript UseAPI示例,Java UseAPI的逻辑应该是正确的 DateFormatter.js文件:
“严格使用”;
//dateformatter.js
使用(函数(){
var formattedDate=newjava.text.simpleDataFormat(this.mask).format(this.date);
返回{
formattedDate:formattedDate
};
});代码>这里是一个简单的javascript UseAPI示例,Java UseAPI的逻辑应该是正确的
DateFormatter.js文件:
“严格使用”;
//dateformatter.js
使用(函数(){
var formattedDate=newjava.text.simpleDataFormat(this.mask).format(this.date);
返回{
formattedDate:formattedDate
};
});代码>显然内置了支持格式化字符串、日期和数字的功能。以下是如何以特定格式格式化日期
${'yyyy-MM-dd HH:mm:ss.SSSXXX' @ format=obj.date, timezone='UTC'}
${'yyyy-MM-dd HH:mm:ss.SSSXXX' @ format=obj.date, timezone='GMT+02:00'}
时区参数是可选的,因此如果您希望时间在默认时区中,则可以忽略时区参数
${'yyyy-MM-dd HH:mm:ss.SSSXXX' @ format=obj.date}
您可以在此处阅读更多信息-Sightly内置了支持格式化字符串、日期和数字的功能。以下是如何以特定格式格式化日期
${'yyyy-MM-dd HH:mm:ss.SSSXXX' @ format=obj.date, timezone='UTC'}
${'yyyy-MM-dd HH:mm:ss.SSSXXX' @ format=obj.date, timezone='GMT+02:00'}
时区参数是可选的,因此如果您希望时间在默认时区中,则可以忽略时区参数
${'yyyy-MM-dd HH:mm:ss.SSSXXX' @ format=obj.date}
您可以在此处阅读更多信息-您能否澄清一下您试图对代码示例执行的操作?您可以像读取任何其他属性一样以HTML格式读取该属性,但没有格式设置,Java使用类中的格式设置已由下面的@Subhash回答。至于你的另一个问题,你能展示一下你用来读取日期的代码行吗?你能澄清一下你想用代码样本做什么吗?您可以像读取任何其他属性一样以HTML格式读取该属性,但没有格式设置,Java使用类中的格式设置已由下面的@Subhash回答。至于你的另一个问题,你能显示你用来读取日期的代码行吗?