如何从javascript中的iso日期格式中仅提取时间?

时间:2017-12-02 11:59:25

标签: javascript

let isoDate = '2018-01-01T18:00:00Z';

我需要使用任何方法事件时刻仅提取18:00。

6 个答案:

答案 0 :(得分:1)

以下是普通JavaScript中的快速单行解决方案:

console.log("2018-01-01T18:00:00Z".replace(/^[^:]*([01]\d:[01]\d).*$/, "$1"));

如果您获得的日期是Date的实例而不是字符串,那么您可以使用toISOString轻松转换它,如下所示:

let date = new Date('2018-01-01T18:00:00Z');
console.log(date.toISOString().replace(/^[^:]*([01]\d:[01]\d).*$/, "$1"));

答案 1 :(得分:0)

您可以使用momentjs

  

默认情况下,时刻会以本地时间进行分析和显示。   如果要以UTC格式解析或显示片刻,可以使用moment.utc()而不是moment()



var t = moment.utc("2018-01-01T18:00:00Z").format("HH:mm")
console.log(t)

<script src="https://cdn.jsdelivr.net/npm/moment@2.19.3/moment.min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用正则表达式来匹配该特定区域。

&#13;
&#13;
let isoDate = '2018-01-01T18:00:00Z';
let result = isoDate.match(/\d\d:\d\d/);
console.log(result[0]);
&#13;
&#13;
&#13;

答案 3 :(得分:0)

Vanilla Javascript实施。

&#13;
&#13;
const dateObj = new Date('2018-01-01T18:00:00Z');
let hour = dateObj.getUTCHours();
let minute = dateObj.getUTCMinutes();

console.log(hour, minute);
&#13;
&#13;
&#13;

这使用了Date内置的Javascript对象。如果您不想为此目的添加外部库,则应该查看它。

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

答案 4 :(得分:0)

我收到了以下日期,并抓住时间,这对我有用

let isoDate= '2020-09-28T15:27:15+05:30';
let result = isoDate.match(/\d\d:\d\d/);
console.log(result[0]);

输出将只是isoDate中的时间,

15:27

答案 5 :(得分:0)

您可以使用正则表达式组:

    const ISODateFormat = '2021-07-19T13:04:20.602Z';
    const regex = /([0-9]{4}-[0-9]{2}-[0-9]{2})?.([:0-9]+)/;
    console.log(ISODateFormat.match(regex));
    // expected output:  Array ["2021-07-19T13:04:20", "2021-07-19","13:04:20"]