kettle 使用js格式化日期

//Script here

var dateTime =  new Date(date);

dateTime=dateTime.setMinutes(dateTime.getMinutes() +val);

dateTime = new Date(dateTime)

function formatDate(date, formatStr) {
    var year = date.getFullYear(); // 年
    var month = date.getMonth() + 1; // 月,注意返回值范围是0-11
    var day = date.getDate(); // 日
    var hour = date.getHours(); // 小时
    var minute = date.getMinutes(); // 分钟
    var second = date.getSeconds(); // 秒

    // 构造替换用的对象
    var replacers = {
        "YYYY": year,
        "MM": month < 10 ? "0" + month : month,
        "DD": day < 10 ? "0" + day : day,
        "HH": hour < 10 ? "0" + hour : hour,
        "mm": minute < 10 ? "0" + minute : minute,
        "SS": second < 10 ? "0" + second : second
    };

    // 替换字符串中的占位符
    for (var key in replacers) {
        formatStr = formatStr.replace(key, replacers[key]);
    }

    return formatStr;
}

var dateTimeStr = formatDate(dateTime,'YYYY-MM-DD HH:mm:SS')

第二种 格式化  "2023年1月1日 1时"非标准格式

function convertDateFormat(dateStr) {
    // 使用正则表达式匹配年、月、日和小时
    var matchResult = dateStr.match(/(\d{4})年(\d{1,2})月(\d{1,2})日 (\d{1,2})时/);
    
    // 创建一个新的Date对象,注意月份是从0开始的
    var date = new Date(matchResult[1], parseInt(matchResult[2]) - 1, matchResult[3], matchResult[4]);

    // 获取并返回转换后的日期和时间字符串
    var months = ("0" + (date.getMonth() + 1)).slice(-2); 
    var days = ("0" + date.getDate()).slice(-2);
    var hours = ("0" + date.getHours()).slice(-2);
    var minutes = ("0" + date.getMinutes()).slice(-2);
    var seconds = ("0" + date.getSeconds()).slice(-2);

    return date.getFullYear() + '-' + months + '-' + days + ' ' + hours + ':' + minutes + ':' + seconds;
}
var str = "2023-12-07";  // 这是一个字符串日期
str = str.replace(/-/g, '/');  // 将日期字符串中的"-"替换为"/"
var date = new Date(str);  // 创建日期对象

生成时间段内的日期,用逗号拼接后,使用“列拆分成多行”组件,生产数据

//Script here
var startDate = '2023/01/01';
var endDate = '2023/11/01';


var dates = getDatesBetween(startDate, endDate);

 
var dateList = '';

for (var i = 0; i < dates.length; i++) {
    var date = dates[i];
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();

    if (month < 10) month = '0' + month;
    if (day < 10) day = '0' + day;

    var formattedDate = year + '-' + month + '-' + day;
    // 在这里,您可以将formattedDate添加到您需要的字段或变量中
    dateList += formattedDate+',';
}



function getDatesBetween(startDate, endDate) {
    var dates = [];
    var currentDate = new Date(startDate);
    var end = new Date(endDate);

    while (currentDate <= end) {
        dates.push(new Date(currentDate));
        currentDate.setDate(currentDate.getDate() + 1);
    }

    return dates;
}
 

计算时间差

// 定义两个时间字符串,这里可以根据实际情况修改
var time1 = "2025-03-21 10:00:00";
var time2 = "2025-03-21 10:01:30";

// 将时间字符串转换为 Date 对象
var date1 = new Date(time1.replace(/-/g, "/"));
var date2 = new Date(time2.replace(/-/g, "/"));

// 计算两个时间的时间差(毫秒)
var diff = Math.abs(date2 - date1);

// 将时间差转换为秒
var seconds = Math.floor(diff / 1000);

// 输出结果
print("两个时间相差的秒数: " + seconds);


// 和当前时间差

// 定义一个时间字符串,这里可以根据实际情况修改
var specifiedTime = "2025-03-21 12:00:00";

// 将指定时间字符串转换为 Date 对象
var specifiedDate = new Date(specifiedTime.replace(/-/g, "/"));

// 获取当前时间
var currentDate = new Date();

// 计算两个时间的时间差(毫秒)
var diff = Math.abs(currentDate - specifiedDate);

// 将时间差转换为秒
var seconds = Math.floor(diff / 1000);

// 输出结果
print("指定时间与当前时间相差的秒数: " + seconds);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值