docker项目,java获取到的时间少8小时

830 阅读1分钟

第一种方式

首先进入docker容器

docker exec -it 容器id /bin/bash

安装vim(由于docker没有vim)

# apt-get update
...
# apt-get install vim
...

使用以下代码测试

import java.util.Date;

public class TestDate {
    public static void main(String[] args) throws Exception {
        System.out.println(new Date());
    }
}
root@24a54801f06f:/usr# javac TestDate.java
root@24a54801f06f:/usr# java TestDate
Thu Nov 01 07:05:37 UTC 2018
root@24a54801f06f:/usr# date
Thu Nov  1 15:09:55 CST 2018

在docker执行以下命令正常

root@24a54801f06f:/usr# echo "Asia/Shanghai" > /etc/timezone
root@24a54801f06f:/usr# java TestDate
Thu Nov 01 15:12:06 CST 2018

第二种方式

在dockerFile增加如下配置

ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
  • 最后重启docker服务,项目获取时间正常