Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Node.js for IBM DB2 iSeries中将Julian日期转换为正常日期_Javascript_Node.js_Db2_Apigee - Fatal编程技术网

Javascript 在Node.js for IBM DB2 iSeries中将Julian日期转换为正常日期

Javascript 在Node.js for IBM DB2 iSeries中将Julian日期转换为正常日期,javascript,node.js,db2,apigee,Javascript,Node.js,Db2,Apigee,在我的一个应用程序开发中,我使用IBM DB2 iSeries数据库,该数据库与DB2.jar Progress提供的DataDirect技术相连接。在数据库中,存储为7位Julian格式的日期必须在Node.js中转换为时间戳,因为我的数据层已在Node.js中实现,必须部署在Apigee上。 我需要一个通用的解决方案,可以在SQL查询级别以及Node.js中将这个朱利安日期转换为正常日期 Julian date的示例是1160920,对应于2016-09-20。经过大量调查,我为SQL级别和

在我的一个应用程序开发中,我使用IBM DB2 iSeries数据库,该数据库与DB2.jar Progress提供的DataDirect技术相连接。在数据库中,存储为7位Julian格式的日期必须在Node.js中转换为时间戳,因为我的数据层已在Node.js中实现,必须部署在Apigee上。 我需要一个通用的解决方案,可以在SQL查询级别以及Node.js中将这个朱利安日期转换为正常日期


Julian date的示例是1160920,对应于2016-09-20。

经过大量调查,我为SQL级别和node.js级别提供了一个解决方案

要使用SQL查询将7位数的儒略日期转换为正常日期,您可以使用下面的IBM DB2 iSeries数据库查询-

SELECT DATE(((1160920 /10000)+1900)|| '-' ||
(MOD(1160920 ,10000) /100)|| '-' ||
MOD(1160920 ,100))
FROM
SYSIBM.SYSDUMMY1
要使用node.js执行相同的转换,请使用下面的代码,它将完全转换

var dateFormat = require('dateformat');
function julianIntToDate(n) {

    var yy = ((n/10000)+1900);
    var year = Math.floor(yy);
    var mm = ((n % 10000)/100);
    var mon = Math.floor(mm);
    mon = leadingZero(mon);
    var dd = (n % 100);
    dd = leadingZero(dd);
    console.log("Year--"+year);
    console.log("Month--"+mon);
    console.log("Day--"+dd);

    var now = new Date(year+"-"+mon+"-"+dd);
    console.log("Converted Date-->"+now);
    orderDate = dateFormat(now, "yyyy-mm-dd'T'HH:mm:ss-0500");
    return (orderDate);

    function leadingZero(value) {
    if (value < 10) {
    return "0" + value.toString();
    }
    return value.toString();
    }
}
console.log("Julian Date--->"+1160920);
console.log("Normal Date--->"+julianIntToDate(1160920).toString());
var dateFormat=require('dateFormat');
函数JulianitoDate(n){
变量yy=((n/10000)+1900);
变量年份=数学下限(yy);
风险值mm=(n%10000)/100);
var mon=数学地板(mm);
mon=引线零(mon);
var dd=(n%100);
dd=导零(dd);
console.log(“年--”+年);
console.log(“月--”+mon);
控制台日志(“日--”+dd);
var now=新日期(年+“-”+周一+“-”+日);
log(“转换日期-->”+现在);
orderDate=dateFormat(现在是“yyyy-mm-dd'HH:mm:ss-0500”);
退货(订单日期);
函数引线零(值){
如果(值<10){
返回“0”+value.toString();
}
返回值.toString();
}
}
console.log(“朱利安日期-->”+1160920);
log(“正常日期-->”+julianIntToDate(1160920.toString());

您是否先尝试用谷歌搜索它?StackOverflow上有很多答案,只需使用搜索。无论你所说的“朱利安日期”是什么意思,1160920不可能对应于公历中的2016年9月20日。这不是朱利安日期,它是一个只有7位数字作为CYYMMDD存储的常规日期。