Javascript 如何为给定时区创建日期对象,然后将其转换为UTC

Javascript 如何为给定时区创建日期对象,然后将其转换为UTC,javascript,node.js,datetime,timestamp,timezone,Javascript,Node.js,Datetime,Timestamp,Timezone,我的NodeJS服务器上有以下字符串,它使用UTC时间 const year='2021'; 常量月='05'; 常数日='28'; 常数小时='17'; 常数分钟='40'; 常数秒='00'; 如果我现在创建一个日期对象,如sonewdate(年、月、日、小时、分钟、秒)它显然为UTC创建了日期对象。但是,我正在解析的字符串是在CET中记录的,而不是UTC 如何将如上所示的信息解析为设置为UTC的服务器上给定时区的日期?我还需要尊重各自时区的夏季和冬季时间 之后,我实际上需要将该日期对象转

我的NodeJS服务器上有以下字符串,它使用UTC时间

const year='2021';
常量月='05';
常数日='28';
常数小时='17';
常数分钟='40';
常数秒='00';
如果我现在创建一个日期对象,如so
newdate(年、月、日、小时、分钟、秒)
它显然为UTC创建了日期对象。但是,我正在解析的字符串是在CET中记录的,而不是UTC

如何将如上所示的信息解析为设置为UTC的服务器上给定时区的日期?我还需要尊重各自时区的夏季和冬季时间

之后,我实际上需要将该日期对象转换为UTC,因为我需要将其作为UTC时间戳发送到外部系统

我很难为它绞尽脑汁。谢谢

试试这个

var-date=新日期(年、月、日、时、分、秒);
var utc=Date.utc(Date.getUTCFullYear(),Date.getUTCMonth(),
date.getUTCDate(),date.getUTCHours(),date.getUTCMinutes(),date.getUTCSeconds();

控制台日志(新日期(utc))如果您正在使用Nodejs,请安装此软件包

使用这个摄像头

npm i date-and-time
那么你需要它吗

const date = require('date-and-time');
你的约会对象

const now = new Date();
date.format(now, 'YYYY/MM/DD HH:mm:ss');    // => '2015/01/02 23:14:05'
date.format(now, 'ddd, MMM DD YYYY');       // => 'Fri, Jan 02 2015'
date.format(now, 'hh:mm A [GMT]Z');         // => '11:14 PM GMT-0800'
date.format(now, 'hh:mm A [GMT]Z', true);   // => '07:14 AM GMT+0000'

检查时刻是否真正尊重夏季和冬季时间(如果时区有)?请检查“显然为UTC创建日期对象”。不,没有。它根据主机系统偏移量和规则生成日期,表示为UTC 1970-01-01T00:00:00的偏移量。@ArvindKumarAvinash处于维护模式,基本上已被弃用。和都将做OP想要做的事情(可能还有其他)。由于服务器设置为UTC,因此
日期将已经是UTC。第一部分完全按照OP说的做,第二部分是多余的,可以是
让UTC=date.getTime()
或者干脆
让utc=+date
。OP想要解析带有偏移量的时间戳,然后生成一个时间值。这个答案也不行。如果你访问了日期和时间包页面,你可以看到,就像格式一样,有一个解析函数,读了它你就会明白,你完全没有抓住要点。OP不想解析任何东西,他们想为特定时区中的年、月、日等的一组特定值创建一个日期。格式化部分很简单。