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;
}
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kettle中,可以使用"Select Values"步骤来格式化时间。首先,你需要将时间字段转换为字符串类型,然后使用"Select Values"步骤中的"Calculator"选项来进行格式化。 在"Calculator"选项中,你可以使用Kettle日期格式化函数来将时间字段格式化为所需的格式。例如,如果你想将时间字段格式化为"yyyy/MM/dd HH:mm:ss"的格式,你可以使用"Calculator"选项中的"String Functions"下的"Format Date/Time"函数。在函数的参数中,你需要指定时间字段和所需的格式。 以下是一个示例代码,展示了如何在Kettle格式化时间字段: ```javascript // 转换时间格式 function formatDate(time) { var date = new Date(time); var formattedDate = date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds(); return formattedDate; } // 示例数据 var timestamp = "Thu Jul 22 00:58:32 CST 2010"; // 格式化时间 var formattedTime = formatDate(timestamp); // 输出结果 console.log(formattedTime); ``` 在上面的示例中,我们定义了一个名为"formatDate"的函数,它接受一个时间参数,并将其格式化为"yyyy/MM/dd HH:mm:ss"的格式。然后,我们使用示例数据"Thu Jul 22 00:58:32 CST 2010"来调用这个函数,并将格式化后的时间打印到控制台上。 请注意,这只是一个示例代码,你需要根据你的实际需求进行适当的修改。同时,Kettle还提供了其他日期格式化函数和选项,你可以根据需要选择适合的方法来格式化时间。 #### 引用[.reference_title] - *1* [kettle中关于js处理Date日期数据,将日期格式改为时间戳](https://blog.csdn.net/weixin_44047573/article/details/124252448)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [[Kettle] CST时间格式转yyyy-MM-dd HH:mm:ss格式](https://blog.csdn.net/unknow_oracle/article/details/123759860)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [数据库数据格式化Kettle Spoon](https://blog.csdn.net/u014712365/article/details/117684888)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值