Docker时间时区修改,镜像创建后修改时间,容器里UTC时间转换

本文介绍了在Docker中遇到时区问题导致XXL-JOB无法正常触发任务的解决方案,通过设置环境变量`-e TZ=Asia/Shanghai`来修正时区。同时,提供了一个将UTC时间字符串转换为上海时区的Java方法示例,帮助开发者进行时间转换操作。
摘要由CSDN通过智能技术生成

Docker时区修改

XXL-JOB用镜像启动后发现时间到了无法触发,然后发现是由于容器时区的问题。

未解决前docker run语句

docker run -d --name xxl-job -p 5080:5080  镜像id

解决办法,加个参数-e TZ=Asia/Shanghai

run语句如下

docker run -e TZ=Asia/Shanghai -d --name xxl-job -p 5080:5080 镜像id

UTC时间转换

将时间字符串 2021-05-23T12:02:00.000Z,转成 2021-05-23 20:02:00

    public static void main(String[] args) {
        System.out.println(Test.UTCStringtODefaultString("2021-05-23T12:02:00.000Z"));
    }
    public static String UTCStringtODefaultString(String UTCString) {
        try {
            UTCString = UTCString.replace("Z", " UTC");
            SimpleDateFormat utcFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS Z");
            utcFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
            SimpleDateFormat defaultFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            defaultFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
            Date date = utcFormat.parse(UTCString);
            return defaultFormat.format(date);
        } catch (Exception e){
            return UTCString;
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值