在ETL处理过程中经常会遇到时间类型的转换,可以通过js脚本方便的进行,如下:
时间格式变为时间戳
若tm1字段是时间类型,如果是字符串类型会报错。
var t1 = tm1.getTime();
var.getTime()可将时间类型转换为timestamp格式,如下所示。
如果tm1是字符串,需加new Date 将字符串类型转换为时间类型,如下。
var t1 = new Date("2020/10/10 09:11:20").getTime()
获取当前时间:
var date = date2str(new Date(),"yyyy:MM:dd HH:mm:ss");
var date= date2str(dateAdd(new Date(), "d", -1),"yyyy:MM:dd "); //获取前一天的时间
详解:
1、var timestamp1 = (new Date()).valueOf();
// 通过valueOf()
函数返回指定对象的原始值获得准确的时间戳值;
2、var timestamp2 = new Date().getTime();
// 通过原型方法直接获得当前时间的毫秒值,准确;
3、var timetamp3 = Number(new Date()) ;
//将时间转化为一个number类型的数值,即时间戳;
时间戳变为时间格式
通过下面这个函数即可实现:
function TimestampToDate2(Timestamp) {
now = new Date(Timestamp),
y = now.getFullYear(),
m = now.getMonth() + 1,
d = now.getDate();
return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8);
}
var time=TimestampToDate2(t1);
参考链接: