使用脚本计算WSO2 6.1.1中传递的日期的下一个日期

贾斯汀

我正在尝试将Date的第二天更新为通过日期。

从注册表文件中读取日期。

注册表看起来像这样

使用冒号分隔符分割以上内容,并将其视为startDate和EndDate。使用脚本介体为两个日期添加“下一天的日期”。因为完成处理后,我需要使用“下一天的日期”更新注册表。(此处未包括在内,仅包括日期转换)

<?xml version="1.0" encoding="UTF-8"?>
<api context="/testdateapi" name="TestAPI" xmlns="http://ws.apache.org/ns/synapse">
    <resource methods="GET">
        <inSequence>
            <log level="custom">
                <property name="==TestDateAPI" value="called=="/>
            </log>
            <!-- <script language="js">
                    var log = mc.getServiceLog();        
    log.info("===Logging inside Script Mediator====");
    var result=new Date('2020-12-03');
  result.setDate(result.getDate() + 1);
  log.info("modifiedDate::::" + result);  
    mc.setProperty("modifiedDate",result);
</script> 
     <respond/>  -->
      <property name="RegPath" scope="default" type="STRING" expression="get-property('registry','gov:/XeroConfig/PNLDT.txt')"/>
            <script language="js"><![CDATA[var log = mc.getServiceLog(); 
            log.info("Logging inside Script Mediator"); 
            var dates = mc.getProperty("RegPath").split(":"); 
            log.info("Reg Dates: " + dates);
              var startDate = dates[0];
              var endDate = dates[1];   
             var nextStartDate=addNextDay(startDate);
             mc.setProperty("nextStartDate", nextStartDate);
             //var nextEndDate=addNextDay(endDate);
            // mc.setProperty("nextEndDate", nextEndDate);
            log.info("startDate:  " + startDate);
            log.info("endDate:  " + endDate);
            function addNextDay(dateString) {
            var  simpleDateFormat = Packages.java.text.SimpleDateFormat;
            var fomatter = new simpleDateFormat("yyyy-MM-dd");
            var date = Packages.java.util.Date;
            var currentDate = fomatter.format(new Date(dateString));
            log.info("Current date : " + currentDate );
            
            var calendar = Packages.java.util.Calendar.getInstance();
            calendar.setTime(fomatter.parse(currentDate));
            var daysToAdd = mc.getProperty("days");
            calendar.add(Packages.java.util.Calendar.DATE, 1);
            var destDate = fomatter.format(calendar.getTime()); 
            log.info("Destination date : " + destDate );
            return destDate;
            }
            ]]></script>
            <log level="custom">
                <property expression="$ctx:nextStartDate" name="====nextStartDate==="/>
            </log>
            <respond/>
        </inSequence>
        <outSequence/>
        <faultSequence/>
    </resource>
</api>

日志:

[2020-12-04 10:35:18,197] []  INFO - LogMediator ==TestDateAPI = called==
[2020-12-04 10:35:18,202] []  INFO - ScriptMessageContext Logging inside Script Mediator
[2020-12-04 10:35:18,202] []  INFO - ScriptMessageContext Reg Dates: [Ljava.lang.String;@352bb9c2
[2020-12-04 10:35:18,213] []  INFO - ScriptMessageContext Current date : 1970-01-01
[2020-12-04 10:35:18,214] []  INFO - ScriptMessageContext Destination date : 1970-01-02
[2020-12-04 10:35:18,214] []  INFO - ScriptMessageContext startDate:  2020-12-01
[2020-12-04 10:35:18,214] []  INFO - ScriptMessageContext endDate:  2020-12-31
[2020-12-04 10:35:18,214] []  INFO - LogMediator ====nextStartDate=== = 1970-01-02

预期产量:

NextStartDate:2020-12-02 NextEndDate:2021-01-01

参考: 日期转换链接

詹南坦

您不需要调用new Date(),因为您已经具有日期字符串,并且使用的Date对象是javascript对象。试用此代码。日期在这里硬编码

<script language="js"><![CDATA[var log = mc.getServiceLog(); 
            log.info("Logging inside Script Mediator"); 

            var startDate = '2020-12-01';
            var endDate = '2020-12-31';   
            var nextStartDate=addNextDay(startDate);
            mc.setProperty("nextStartDate", nextStartDate);
            var nextEndDate=addNextDay(endDate);
             mc.setProperty("nextEndDate", nextEndDate);
            log.info("startDate:  " + startDate);
            log.info("endDate:  " + endDate);
            function addNextDay(dateString) {
            var  simpleDateFormat = Packages.java.text.SimpleDateFormat;
            var fomatter = new simpleDateFormat("yyyy-MM-dd");
            var currentDate = dateString;
            
            var calendar = Packages.java.util.Calendar.getInstance();
            calendar.setTime(fomatter.parse(currentDate));
            var daysToAdd = mc.getProperty("days");
            calendar.add(Packages.java.util.Calendar.DATE, 1);
            var destDate = fomatter.format(calendar.getTime()); 
            log.info("Destination date : " + destDate );
            return destDate;
            }]]></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用DateTime :: createFromFormat获取+ 1天(下一个日期)

来自分类Dev

php pdo代码从所选日期开始计算下一个6个月的日期

来自分类Dev

如果月份是1月29,30,31,那么如何添加下一个订购日期,以避免在javascript中2月的同一日期?

来自分类Dev

jQuery datepicker只能选择1天,并在下一个输入中复制日期+ x天

来自分类Dev

给定特定日期,请使用Python在列表中查找下一个日期

来自分类Dev

在下一个最早日期之前从另一个表更新1个表

来自分类Dev

如何使用mysql显示下一个日期

来自分类Dev

如何计算1到下一个0之间的天数

来自分类Dev

如何计算1到下一个0之间的天数

来自分类Dev

如何使用JavaScript在时间表中显示下一个每周重复日期?

来自分类Dev

MatLab创建一个999x1数组第一个333是1下一个333是2最后333是3

来自分类Dev

选择要在当前日期计算的下一个日期的值SQL

来自分类Dev

使用Zend Paginator进行分页,显示上一个,第一个,最后一个,下一个,当前和当前+/- 1

来自分类Dev

如何使用javascript显示/打印当前日期和下一个日期

来自分类Dev

使用jQuery(ajax)和php的上一个和下一个日期

来自分类Dev

如何获取日期列表,并使用 LINQ 删除列表中另一个日期的 1 分钟内的任何日期?

来自分类Dev

如何计算订阅计划的下一个续订日期?

来自分类Dev

计算直到下一个指定日期为止的天数

来自分类Dev

计算直到下一个指定日期为止的天数

来自分类Dev

如何计算一列中某些值从1个值到下一个值的变化,而另一列中有一些公共值呢?

来自分类Dev

使用linq按小时将数据分组并添加下一个日期

来自分类Dev

使用Selenium IDE / javascript获取下一个日期

来自分类Dev

MYSQL-使用下一个日期更新临时表

来自分类Dev

如何使用Python查找具有相同ID的下一个日期?

来自分类Dev

一个shell脚本来列出日期为1的文件

来自分类Dev

foldLeft 在 (0 /: (1 to 6))(_+_) 中是如何计算的?

来自分类Dev

如果没有使用 VBA 找到 comended 日期,如何找到下一个可用日期

来自分类Dev

SQL日期问题-计算最近6个月内至少有2个月内至少下达1个订单的用户

来自分类Dev

如何遍历可能的整数数组,例如从[1,1,1,1]到[1,1,1,2],...,最后到[6,6,6,6]?

Related 相关文章

  1. 1

    使用DateTime :: createFromFormat获取+ 1天(下一个日期)

  2. 2

    php pdo代码从所选日期开始计算下一个6个月的日期

  3. 3

    如果月份是1月29,30,31,那么如何添加下一个订购日期,以避免在javascript中2月的同一日期?

  4. 4

    jQuery datepicker只能选择1天,并在下一个输入中复制日期+ x天

  5. 5

    给定特定日期,请使用Python在列表中查找下一个日期

  6. 6

    在下一个最早日期之前从另一个表更新1个表

  7. 7

    如何使用mysql显示下一个日期

  8. 8

    如何计算1到下一个0之间的天数

  9. 9

    如何计算1到下一个0之间的天数

  10. 10

    如何使用JavaScript在时间表中显示下一个每周重复日期?

  11. 11

    MatLab创建一个999x1数组第一个333是1下一个333是2最后333是3

  12. 12

    选择要在当前日期计算的下一个日期的值SQL

  13. 13

    使用Zend Paginator进行分页,显示上一个,第一个,最后一个,下一个,当前和当前+/- 1

  14. 14

    如何使用javascript显示/打印当前日期和下一个日期

  15. 15

    使用jQuery(ajax)和php的上一个和下一个日期

  16. 16

    如何获取日期列表,并使用 LINQ 删除列表中另一个日期的 1 分钟内的任何日期?

  17. 17

    如何计算订阅计划的下一个续订日期?

  18. 18

    计算直到下一个指定日期为止的天数

  19. 19

    计算直到下一个指定日期为止的天数

  20. 20

    如何计算一列中某些值从1个值到下一个值的变化,而另一列中有一些公共值呢?

  21. 21

    使用linq按小时将数据分组并添加下一个日期

  22. 22

    使用Selenium IDE / javascript获取下一个日期

  23. 23

    MYSQL-使用下一个日期更新临时表

  24. 24

    如何使用Python查找具有相同ID的下一个日期?

  25. 25

    一个shell脚本来列出日期为1的文件

  26. 26

    foldLeft 在 (0 /: (1 to 6))(_+_) 中是如何计算的?

  27. 27

    如果没有使用 VBA 找到 comended 日期,如何找到下一个可用日期

  28. 28

    SQL日期问题-计算最近6个月内至少有2个月内至少下达1个订单的用户

  29. 29

    如何遍历可能的整数数组,例如从[1,1,1,1]到[1,1,1,2],...,最后到[6,6,6,6]?

热门标签

归档