首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >节点js中的新日期(年、月、日期)将自动转换为UTC时区。

节点js中的新日期(年、月、日期)将自动转换为UTC时区。
EN

Stack Overflow用户
提问于 2017-03-06 16:44:06
回答 5查看 28.4K关注 0票数 5
代码语言:javascript
运行
复制
    var dateInCST; //Getting CST date as input.

    /*Triming the time part and retaining only the date.*/
    var onlyDateInCST = new Date(dateInCST.getUTCFullYear(), dateInCST.getUTCMonth(), dateInCST.getUTCDate()); 

    console.log(onlyDateInCST);

我在+5点30分。

在日期创建期间,通过提供年份、月份和日期,节点js将其视为IST,并自动推断-5:30。

节点js通过考虑该日期位于服务器时区,将日期自动转换为UTC。但在浏览器中,我没有时间得到适当的CST日期。

例子:

代码语言:javascript
运行
复制
var today = new Date(2017, 2, 7);
console.log(today);

日期为2017-03-07T00:00:00.000Z。但节点js从该日期起扣除UTC ( +5:30 )与日期对象之间的服务器时差,日期对象为2017-03-06T18:30:00.000Z。

为什么上述代码在节点js中的行为与浏览器不同。有什么解决办法吗?

编辑:

代码语言:javascript
运行
复制
var date = new Date();
function createDateAsUTC(date) {
    return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));
}
console.log(date);
console.log(createDateAsUTC(date));

NodeJs输出

2017-03-08T12:28:16.381 Z

2017-03-08T17:58:16.000Z

浏览器输出

2017年3月8日星期三17:58:17 GMT+0530 (印度标准时间)

2017年3月8日星期三23:28:17 GMT+0530 (印度标准时间)

节点js行为与浏览器之间存在差异。服务器(本地)时间是17:58。

新的日期( ?,?)有什么区别?和新的日期(Date.UTC( ?,?))?

EN

Stack Overflow用户

发布于 2017-03-07 19:33:47

Nodejs以ISO 8601格式表示。

Z是零UTC偏移量的区域指示符。因此,"09:30世界协调时“被表示为"09:30Z”或“0930 Z”。

在你的情况下

var var=新日期(2017,2,7);

2017-03-06T18:30:00.000Z是有效的,因为它是以UTC表示的。

nodejs中的默认日期格式可能是yyyy-mm-ddThh:mm:ss.fffZ,如果将其更改为yyyy-mm-ddThh:mm:ss.fffZ+|-hh:mm,它将显示为2017-03-07T00:00:00.000+05:30

更新

我运行了与您相同的日期和时区,在我的机器上它没有显示ISO 8601格式,它只使用toISOString()方法显示。

代码语言:javascript
运行
复制
var today = new Date(2017, 2, 7);
console.log(today); --> Tue Mar 07 2017 00:00:00 GMT+0530 (India Standard Time)
console.log(today.toISOString()); --> 2017-03-06T18:30:00.000Z

为了复制,我添加了moment.js

代码语言:javascript
运行
复制
var today = new Date(2017, 2, 7);
console.log(moment(today).format()); --------> 2017-03-07T00:00:00+05:30
console.log(moment(today).utc().format()); --> 2017-03-06T18:30:00Z
票数 5
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42631017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档