Javascript 将字符串转换为日期时间格式,而不将其转换为本地时间

Javascript 将字符串转换为日期时间格式,而不将其转换为本地时间,javascript,datetime,Javascript,Datetime,以下是我的设想: 我只有此格式的DateTime值: “2017-05-01T07:40:00.000+10:00” 但需要将其转换为如下可读的日期时间格式: 2017年1月5日上午7:40 -不转换成当地时间,因为如果我使用 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:

以下是我的设想: 我只有此格式的DateTime值:
“2017-05-01T07:40:00.000+10:00”
但需要将其转换为如下可读的日期时间格式:
2017年1月5日上午7:40
-不转换成当地时间,因为如果我使用

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(台北标准时间)

在我的本地时区GMT+8是零下2小时,但我不想这样转换。 我只需要准确的时间,即2017年1月5日上午07:40
有没有其他方法可以获得我想要的javascript输出?

你可以参考这篇文章


它还提到了一个关于如何使用“时刻”将日期时间精确定位到您想要显示的时区(GMT+10)的示例。

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

var t=“2017-05-01T07:40:00.000+10:00”;
var s=t.split(/-:| t/g).切片(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)我想这会对你有所帮助

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

这是什么格式?“2017-05-01T07:40:00.000+10:00”是iso字符串格式,日期和时间的iso标准规范,var t已经是字符串格式。与我上面写的内容相同,但请检查我是否在字符串末尾添加了Z,而不是+10:00是的,您是对的,我们不需要将其转换为字符串。抱歉,输入格式始终有一个时区,它不能随您给定的输入而更改。这是使用regex的一个好答案。但是我仍然在寻找其他的选择。我需要12小时的AM/PM转换,这个解决方案仍然需要24小时format@alomegah查看我的更新答案。我被添加到
AM&PM
codewell,你很棒,使用你的答案:var t=“2017-05-01T07:40:00.000+10:00”;var s=t.分割(/-|:| t/g).切片(0,5);var parseTime=s[1]+'/'+s[2]+'/'+s[0]+'+s[3]+':'+s[4];var newTime=(新日期(解析时间)).toString('MM/dd/yyyy hh:MM tt');--我使用了前面代码中解析的datetime中的javascript日期对象,它现在为我提供了所需的输出。
var t = "2017-05-01T07:40:00.000Z";
var d = new Date(t); //using javascript Date object