node debian 镜像 new Date 获取时间少 8 小时问题

这篇具有很好参考价值的文章主要介绍了node debian 镜像 new Date 获取时间少 8 小时问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题

在 node debian 镜像中,用 (new Date()).getHours() 与系统时间(东 8 区)少了 8 小时

系统时间

$ node
> (new Date()).getHours()
11

容器中的时间

$ node
> (new Date()).getHours()
3

原 Dockerfile

FROM node:20.5-bullseye

ARG proxy

RUN set -eux && \
	sed -i -e 's#http://deb.debian.org#http://mirrors.aliyun.com#g' \
		-e 's#http://security.debian.org#http://mirrors.aliyun.com#g' \
		/etc/apt/sources.list && \
	apt-get update && \
	rm -rf /var/lib/apt/lists/

WORKDIR /app
COPY . .

RUN env http_proxy=$proxy https_proxy=$proxy npm install

ENTRYPOINT [ "node", "index.js" ]

原因

镜像运行起来容器未设置指定时区

解决

Dockerfile 中添加 ENV TZ='Asia/Shanghai'apt-get install -yq tzdata文章来源地址https://www.toymoban.com/news/detail-625138.html

FROM node:20.5-bullseye

ARG proxy

# 设置时区
ENV TZ='Asia/Shanghai'

RUN set -eux && \
	sed -i -e 's#http://deb.debian.org#http://mirrors.aliyun.com#g' \
		-e 's#http://security.debian.org#http://mirrors.aliyun.com#g' \
		/etc/apt/sources.list && \
	apt-get update && \
	# 安装 tzdata
	apt-get install -yq tzdata && \
	rm -rf /var/lib/apt/lists/

WORKDIR /app
COPY . .

RUN env http_proxy=$proxy https_proxy=$proxy npm install

ENTRYPOINT [ "node", "index.js" ]

验证

系统时间

$ node
> (new Date()).getHours()
11

容器中的时间

$ node
> (new Date()).getHours()
11

参考

  • https://dev.to/0xbf/set-timezone-in-your-docker-image-d22 Set timezone in your docker image

到了这里,关于node debian 镜像 new Date 获取时间少 8 小时问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序 IOS中new Date()时间格式不兼容问题

    问题描述: 最近在小程序项目中遇到了处理Date时间格式的需求,在Android手机测试是没有发现问题的,但是在IOS上 时间转换出现了错误。 解决方案: 这里主要兼容问题在于Android可以处理 ‘-’ 与 ‘/’ ,而IOS只能处理 ‘/’ 的时间格式,具体如下: 总结: 这里需要注意的

    2024年02月13日
    浏览(51)
  • 解决前端ELement UI时间控件el-date-picker提交时间误差8小时

    前端使用框架与UI:Vue+ElementUI。 在项目开发中使用到了DateTimePicker组件,在选择时间后点击查询发现查询导的内容与预期内容有所偏差,之后发现前端选中的时间在后端接收时相差了八个小时。 我们国家的标准时间是东经120°时间(东八区),而标准时间是格林威治时间(世

    2024年01月24日
    浏览(40)
  • 记录一次错误的使用当前时间new Date()引发的错误

    前言    当我回顾自己的博客写作经历时,发现已经好久没有动笔了。然而,我深知互联网的强大之处,它让我们每个人都能轻松地获取信息和解决问题。每当我遇到困难时,只需上网搜索一番,往往就能找到答案。          这一切都得益于那些乐于分享经验和知识的人们

    2024年03月28日
    浏览(86)
  • elmentUI组建中el-date-picker实现限制时间范围精确到小时

    需求要求 时间选择器只能选择今天之前的日期.默认时间是前一天00点~23点 后台返回的最小时间和最大时间 时间精度限制到小时 开始想着用type=\\\"datetimerange\\\"来实现,后来发现控制时间禁用无法实现,后改变思路使用两个type=\\\"datetime\\\"拼装 实现 1.先获取一个只能选择到小时的时间范

    2023年04月27日
    浏览(42)
  • ELement UI时间控件el-date-picker误差8小时解决办法

    在项目中引用了elementui中的date-picker组件,选中的时间跟实际相差八小时,且格式不是自己想要的格式 如图输入的是: 得到的是 ①在data里定义变量 ②在使用form.timestamp之前要对它做处理 ③在methods里加入方法;格式自己可定义;我这里输出的是 yyyy/M/d 仅供参考哦 如果要输出

    2024年02月01日
    浏览(41)
  • 苹果手机 new Date() 兼容问题处理

    在苹果手机(IOS)使用 new Date(date).getTime() 将会返回 NaN,不符合预期,但在安卓手机可以正常使用 new Date(date) 兼容方法: 使用方法:

    2024年02月15日
    浏览(32)
  • 安卓和ios针对于new Date()数据格式的兼容问题

    IOS 手机不识别 YYY-MM-DD HH:mm:ss 格式的日期传参。 在项目中需要实现倒计时,这个倒计时的时间是后端同学给到前端的,我们针对当前时间到结束的时,进行倒计时,这个功能在测试的时候安卓手机和iOS手机都没问题,但是哦生产有用户反馈ios手机无法出现倒计时 发现是ios低版本的情

    2024年02月04日
    浏览(32)
  • 解决:Java后端返回给前端的Date格式数据相差8小时的问题

    问题描述: 后端得到的数据是对的,但是返回给前端后,数据比原数据慢了8小时。 原因: json数据在返回浏览器端是会被spring-boot默认的Jackson框架转换,而Jackson框架默认的时区GMT(相对于中国是少了8小时)。 解决: 在application.yml文件中,配置

    2024年04月16日
    浏览(33)
  • java获取时间相差8小时的各种情况

    2024年02月22日
    浏览(22)
  • SpringCloud OpenFegin 传递Date类型的参数时,接收端多出14个小时的问题

    SpringCloud OpenFegin 传递Date类型的参数时,接收端多出14个小时的问题 1. OpenFegin写法 入参: “startTime”: “2024-01-16 00:00:00”, “endTime”: “2024-01-18 23:59:59”, 对应log Unix 时间戳 转成 北京时间startTime: 2024-01-16 14:00:00 endTime:2024-01-18 13:59:59 时间多了, 2. 既然用Date 接收导致时间

    2024年01月20日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包