将日期时间转换为dojo中正确的日期时间格式

问题描述 投票:0回答:1

我正在使用以下格式获取当前日期时间

Fri Oct 04 2019 13:48:00 GMT+0530 (India Standard Time)

但是我需要下面的格式

04-Oct-2019 19:18

我正在使用第一种格式

exports.date = function formatDate(vpDateObj) {
        var vpDate = locale.parse(dateUtils.toString(vpDateObj), {datePattern: "dd-MMM-yyyy HH:mm", selector: "date"});
        alert (vpDate);
        alert(convert(vpDate));
        return vpDate ? vpDate.toString(vpDate) : " ";
    };

并且我正在尝试转换为如下所示的正确格式

function convert(str) {
        var date = new Date(str),
            mnth = ("0" + (date.getMonth()+1)).slice(-2),
            day  = ("0" + date.getDate()).slice(-2);
        hours  = ("0" + date.getHours()).slice(-2);
        minutes = ("0" + date.getMinutes()).slice(-2);
        return [ date.getFullYear(), mnth, day, hours, minutes ].join("-");
    }

但是这里GMT + 530小时没有及时添加。

请帮助

javascript node.js dojo
1个回答
0
投票

非常确定您需要的是将语言环境日期IST转换为GMT(相当于UTC),两者之间没有可量化的差异),其格式为dd-MMM-yyyy HH:MM

function dateConverter(d) {
  const monthList = [
    "Jan",
    "Feb",
    "Mar",
    "Apr",
    "May",
    "Jun",
    "Jul",
    "Aug",
    "Sep",
    "Oct",
    "Nov",
    "Dec"
  ];

  /*Notice UTC methods are used to take care of 1st day of month and year*/
  const yr = d.getUTCFullYear();
  const mnt = monthList[d.getUTCMonth()];
  const day = d.getUTCDate() < 9 ? "0" + d.getUTCDate() : d.getUTCDate();

  const gmtHr = d.getUTCHours();
  const gmtMin =
d.getUTCMinutes() < 9 ? "0" + d.getUTCMinutes() : d.getUTCMinutes();

  return [day, mnt, yr].join("-") + " " + [gmtHr, gmtMin].join(":");
}

console.info("Formatted::", dateConverter(new Date()));
© www.soinside.com 2019 - 2024. All rights reserved.