有没有办法从Java中的UTC时间提取时间字符串

时间:2019-01-19 05:47:29

标签: javascript date date-formatting

我有一个UTC日期,即Sat, 19 Jan 2019 05:40:07 GMT。我想从给定的日期(即05:40:07)中提取时间字符串。到目前为止,我尝试过的所有方法都是获取timestamp。所以,我写了下面的代码来提取时间

var date = new Date('Sat, 19 Jan 2019 05:40:07 GMT'); 
console.log(date.toISOString().split("T")[1].split(".")[0]);

即首先将日期转换为ISO格式,然后将其分割

是否有其他方法可以将其转换为任何其他格式,因为如果没有直接获取它的方法,我的方法是正确的?

4 个答案:

答案 0 :(得分:1)

因此,我找不到其他方法比我的方法更具吸引力:)

var date = new Date('Sat, 19 Jan 2019 05:40:07 GMT'); 
console.log(date.toISOString().split("T")[1].split(".")[0]);

答案 1 :(得分:0)

toLocaleTimeString()怎么样?

var date = new Date('Sat, 19 Jan 2019 05:40:07 GMT'); 
console.log(date.toLocaleTimeString('en-US', {timeZone: 'UTC', hour12: false}));

如果您想完全避免使用Date对象,则可以解析字符串:

var date = 'Sat, 19 Jan 2019 05:40:07 GMT'
var timeRegex = /(\d\d):(\d\d):(\d\d)/
console.log(timeRegex.exec(date)[0])

答案 2 :(得分:0)

6

答案 3 :(得分:0)

我不知道– JSON是否适合您另一种格式?如果没有,那么您可以按照以下步骤进行操作:

var date = new Date('Sat, 19 Jan 2019 05:40:07 GMT'); 
console.log(date.toJSON().split("T")[1].split(".")[0]);
//or even shorter:
console.log(date.toJSON().slice(-13, -5));

这比您的方法要短一些。

在其他情况下,您可以按照以下步骤操作:

var dateStr = 'Sat, 19 Jan 2019 05:40:07 GMT'; 
var date = new Date(dateStr); 
console.log(dateStr.slice(-12, -4));