2017-05-08 22 views
0

这里是我的情况:我 有日期时间值仅在此格式:
“2017-05-01T07:40:00.000 + 10:00”
,但需要将其转换为像这样的可读日期时间格式:
例如。 2017年5月1日07:40上午
- 而不将其转换为本地时间,因为如果我使用字符串转换为一个DateTime格式而不将其转换为本地时间

var t = "2017-05-01T07:40:00.000+10:00"; 
var d = new Date(t); //using javascript Date object 
var z = moment(t); // or using moment.js: 

变种d和z都有这样相同的输出:
周一2017年5月1日05 :40:00 GMT + 0800(台北标准时间)

//05/01/2017 05:40 AM 

零下2小时在我的本地时区GMT +8,但我不希望它被转换的方式。 我只是需要确切的时间这是05/01/2017 07:40 AM
有没有其他方法可以在javascript中获得我想要的输出?

+0

这是什么样的格式? “2017-05-01T07:40:00.000 + 10:00” –

+0

它是ISO字符串格式,日期和时间的ISO标准规范, – alomegah

回答

0

Regex模式/-|:|T/g尝试使用了split()

var t = "2017-05-01T07:40:00.000+10:00"; 
 
var s =t.split(/-|:|T/g).slice(0,5) 
 
var c =parseInt(s[3]) > 12 ? parseInt(s[3])-12 : s[3]; 
 
var f =parseInt(s[3]) > 12 ? 'PM' : 'AM'; 
 

 
console.log(s[1]+'/'+s[2]+'/'+s[0]+' '+c+':'+s[4]+' '+f);

+0

这是使用正则表达式的一个很好的答案。但即时通讯仍在寻找其他选择。 – alomegah

+0

我需要AM/PM的12小时转换,这个解决方案仍然在24小时时间格式 – alomegah

+0

@alomegah看到我更新的答案。我加了'AM&PM'代码 – prasanth

0

我是这样认为的,这将帮助你。

var t = "2017-05-01T07:40:00.000Z"; 
var d = new Date(t); //using javascript Date object 
+0

var t已经是字符串格式。与我上面写的 – alomegah

+0

相同,但检查我在字符串的末尾添加了Z而不是+10:00 –

+0

是的,我们不需要将它转换为字符串。 –