繁体   English   中英

如何将UTC时间转换为本地时间

[英]How to convert a UTC time to local time javascript

我需要根据用户时区转换UTC时间本地时间

我有两个参数utc time和users timezone作为字符串

即0,1,2,3 ... 12(时区)0,-1,-2,-3 ...- 12(时区)

var utc = "2014-10-18T06:14:41.512Z"
tz = 5.5(Indian Standard Time)

预期结果2014年10月18日星期六11:44:28 GMT + 0530

我试过了矩js

moment("2014-10-18T06:14:41.512Z").zone('+05:30').format('YYYY-MM-DD HH:mm')

结果是正确的。

但是当我将时区更改为其他时区时,它没有显示为尝试的预期结果

moment("2014-10-18T06:14:41.512Z").zone('+12:00').format('YYYY-MM-DD HH:mm')

结果“ 2014-10-18 18:14 ”预期2014-10-18 19:18

12是新西兰时区。 请帮我解决这个问题。 谢谢

检查一下

var date = new Date('2014-10-19 17:00:34 UTC');
date.toString();


var timezone = "America/New_York";
var utcDate = "2014-10-19T10:31:59.0537721Z";

var localDate = moment.utc(utcDate).tz(timezone).format()

还要检查

http://www.digitoffee.com/programming/get-local-time-utc-using-moment-js/94/

为了遵守国际标准,您需要格式化UTC日期以包括time delimiter Tzone designator Z

Z是用于z主任UTC又名偏移ž乌鲁时间的时区标志。 您可以在此处阅读有关国际日期标准ISO8601格式规范的更多信息

符合国际标准后,跨浏览器友好的方法很简单:

new Date('2014-10-19T17:00:34Z');
// Sun Oct 19 2014 12:00:34 GMT-0500 (Central Daylight Time)

时区不是偏移量。 偏移量只是时区的一部分 许多时区在两个不同的偏移量之间交替,以解决夏令时 时区必须考虑到这一点,包括夏时制开始和结束的具体日期和时间,以及时区可能发生的任何更改历史。

您提出的新西兰案例就是一个很好的例子。 您说“ 12是新西兰时区”,因此由于新西兰在该日期处于夏令时,因此从6:14 UTC到新西兰当地时间的转换将是19:14。 -13小时后。

但是12个并不完全代表新西兰。 距UTC仅12个小时的时间。 还有许多其他时区以不同的方式使用相同的偏移量。 例如,元帅群岛全年使用UTC + 12, 没有夏令时。

您应该真正阅读时区标签Wiki-特别是标题为“ Time Zone!= Offset”的部分。

您应该使用tz数据库中完整的IANA标识符来代表时区,而不是偏移量。 例如,美国东部时间是"America/New_York" ,印度时间是"Asia/Kolkata" ,新西兰时间是"Pacific/Auckland" 您可以在Wikipedia的列表中找到更多信息。

您可以使用moment-timezone在JavaScript中使用它们。

moment("2014-10-18T06:14:41.512Z").tz('Pacific/Auckland').format('YYYY-MM-DD HH:mm')

//  Output: "2014-10-18 19:14"

我还在Pluralsight.com上的“ 日期和时间基础知识”课程中非常详细地介绍了这些主题。

请检查此链接

http://www.digitoffee.com/programming/get-local-time-utc-using-moment-js/94/

var timezone = "UTC+5.30"; 
var utcDate = "2014-10-19T10:31:59.0537721Z";

var localDate = moment.utc(utcDate).tz(timezone).format()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM