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

第一种方式

首先进入docker容器

1
docker exec -it 容器id /bin/bash

安装vim(由于docker没有vim)

1
2
3
4
# apt-get update
...
# apt-get install vim
...

使用以下代码测试

1
2
3
4
5
6
7
import java.util.Date;

public class TestDate {
public static void main(String[] args) throws Exception {
System.out.println(new Date());
}
}
1
2
3
4
5
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执行以下命令正常

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

第二种方式

在dockerFile增加如下配置

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