Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sightly html(AEM 6.1)中读取datetime属性_Aem_Sightly - Fatal编程技术网

如何在sightly html(AEM 6.1)中读取datetime属性

如何在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属性的节点上

我的cq对话框中有一个属性,其xtype为datetime。值在cq中存储为“2016-04-11T03:00:00.000-04:00”,属性名称为eventDate

我想知道两件事-

  • 如何从这个属性中读取日期和时间
  • 当我在Use类(Java类)中将这个日期作为参数传递时,它被传递为null。但是,当我传递currentPage.lastModified时,我可以看到日期值

  • 任何指点都将受到高度赞赏。

    不确定使用的方法是否正确

    为提供另一种解决方案—— 您可能会在包含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回答。至于你的另一个问题,你能显示你用来读取日期的代码行吗?