相关文章推荐
旅途中的小熊猫  ·  JavaScript 之 ...·  3 月前    · 
从未表白的骆驼  ·  js处理日期时区问题开发者社区·  3 周前    · 
果断的汤圆  ·  promise多并发请求方法_js ...·  1 周前    · 
会搭讪的骆驼  ·  用Dataproc无服务器从BigQuery ...·  2 年前    · 
爱听歌的夕阳  ·  python - ...·  2 年前    · 
强悍的煎饼果子  ·  机器学习研究与开发平台的选择 - ...·  2 年前    · 
年轻有为的香蕉  ·  驱动程序无法通过使用安全套接字层(SSL)加 ...·  2 年前    · 
Code  ›  js处理日期时区问题开发者社区
js代码 js
https://cloud.tencent.com/developer/article/2301918
从未表白的骆驼
3 周前
程序员小爽

js处理日期时区问题

原创
腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
发布
程序员小爽
社区首页 > 专栏 > js处理日期时区问题

js处理日期时区问题

原创
作者头像
程序员小爽
发布 于 2023-07-12 20:24:36
发布 于 2023-07-12 20:24:36
3.2K 0
举报
文章被收录于专栏: 国际化 国际化

在国际化的开发中,会遇到时区问题, 平时用js处理时间,基本上忽略了时区,javascript默认用的是机器本地的时区来处理。如果涉及到时区转换,有以下几种方式进行处理。

一、日期格式后缀法

通常new Date()会得到一个这种结构的日期时间:Thu Dec 09 2021 15:19:04 GMT+0800 最后的GMT表示格林尼治时间,+0800表示东八区

如果new Date()带有包含时区的参数,会把参数时间转换成当前时区时间,比如:

代码语言: javascript
复制
new Date('Thu Dec 09 2021 15:19:04 GMT+0900') 

会输出Thu Dec 09 2021 14:19:04 GMT+0800,意思就是东九区的15点19分实际上是东八区的14点19分,省略掉GMT直接+-数值也是可以的new Date('Thu Dec 09 2021 15:19:04 +9')

除了gmt,utc也可以表示0时区,只是两者意义不同,UTC称为协调世界时,其它常见的还有PDT(太平洋夏季时间),PST(太平洋标准时间、西八区)

此外还有一种日期格式:2021-12-09T07:36:28Z T表示后面的是时间,可以用空格代替,Z表示0时区,加减时区方式和上面一样

二、转换为格林威治时间法

// 先获取当前所在国家和格林威治时间之间的差值,默认是分钟数 // 使用Date对象的getTimezoneOffset() 就可以获取到

代码语言: javascript
复制
    const difference = new Date().getTimezoneOffset() * 60 * 1000 //将差异值转成毫秒值
    // 获取格林威治时间的毫秒值,用+ 的原因是因为如果是比格林威治时间快的地区,这个方法返回值
    //是一个负数,而慢的地区返回值是一个正数
    const GreenwichMillminutes = new Date().getTime() + difference 
    // 利用这个毫秒值获取格林威治地区的日期对象实例 
    const GreenwichDate = new Date(GreenwichMillminutes);
 
推荐文章
旅途中的小熊猫  ·  JavaScript 之 使用方式、函数定义与调用、(局部、全局)变量 - 鹿先森JIAN
3 月前
从未表白的骆驼  ·  js处理日期时区问题开发者社区
3 周前
果断的汤圆  ·  promise多并发请求方法_js promise.allsettled并发请求
1 周前
会搭讪的骆驼  ·  用Dataproc无服务器从BigQuery数据表编写PySpark表-腾讯云开发者社区-腾讯云
2 年前
爱听歌的夕阳  ·  python - minimalmodbus read data bits - Stack Overflow
2 年前
强悍的煎饼果子  ·  机器学习研究与开发平台的选择 - 刘建平Pinard - 博客园
2 年前
年轻有为的香蕉  ·  驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not acc_sqlserver ssl安全错误_不熬夜的程序猿的博客-
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号