【原創】kettle轉換組件雜記-【javascript組件】獲取當前時間的前一天/後一天


一、獲取當天日期有兩種方法:

01."獲取系統信息"組件-》類型選擇系統日期(可變)即可。

注:組件的英文名爲:SystemInfo

02."javascript代碼"組件中的new Date()

注:組件的英文名爲:ScriptValueMod

上述兩種方法獲取到的當天日期的類型都是Date


二、當天日期格式化的兩種方法:

01.在"javascript代碼"組件中自己構造格式化函數

02.在"javascript代碼"組件中使用自帶的date2str方法


三、獲取當前時間的前一天的兩種方法:

01.在"javascript代碼"組件中計算毫秒數

02.在"javascript代碼"組件中使用自帶的dateAdd方法


四、獲取當前時間的後一天的方法:

01.在"javascript代碼"組件中使用自帶的dateAdd方法


五、對於上述方法的實踐:

01.首先給出"javascript代碼"中對於格式化和獲取前一天以及後一天的實踐:

//以下是格式化日期的方法,跟主流程無關,目的是爲了格式化當前日期

Date.prototype.format = function(fmt) { 
     var o = { 
        "M+" : this.getMonth()+1,                 //月份 
        "d+" : this.getDate(),                    //日 
        "h+" : this.getHours(),                   //小時 
        "m+" : this.getMinutes(),                 //分 
        "s+" : this.getSeconds(),                 //秒 
        "q+" : Math.floor((this.getMonth()+3)/3), //季度 
        "S"  : this.getMilliseconds()             //毫秒 
    }; 
    if(/(y+)/.test(fmt)) {
            fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
    }
     for(var k in o) {
        if(new RegExp("("+ k +")").test(fmt)){
             fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
         }
     }
    return fmt; 
}      
//


//自己構造格式化方法,同樣也適用於job
var today_format1 = new Date().format("yyyyMMddhhmmss");
var today_format2 = new Date().format("yyyyMMdd hhmmss");
var today_format3 = new Date().format("yyyy:MM:dd hh:mm:ss");

//系統自帶方法
var today_format4 = date2str(new Date(),"yyyy:MM:dd HH:mm:ss");

//獲取前一天和後一天
var preDate = new Date(new Date() - 1*24*60*60*1000); //前一天
//格式化前一天
var preDate_format1 = preDate.format("yyyyMMddhhmmss"); //前一天
var preDate2 = dateAdd(new Date(), "d", -1) //前一天

//獲取後一天
var nextDate = dateAdd(new Date(), "d", 1) //後一天

02.上述javascript實踐所用的ktr設計如下圖:

image.png

獲取系統信息組件:


javascript組件:


03.02的運行結果如下圖所示:

   "獲取系統信息"組件中獲取到的當天日期

image.png

"javascript代碼"組件中格式化系統時間

image.png

image.png

image.png

image.png

"javascript代碼"組件中獲取前一天時間

image.png

image.png

image.png

"javascript代碼"組件中獲取後一天時間
image.png


有問題QQ聯繫623535597或者

添加微信:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章