Advertisement

【Java】时差问题,格林威治时间(GMT)与北京时间转换

阅读量:

格林威斯特时间为 Greenwich 时间
本文以上述案例为例说明:要将 Greenwich 时间转换成北京时间需要加8小时;反之,则需在原文中将+8改为-8即可完成转换操作。

1. 时间格式为:2021-01-04T04:16:23.609Z

此处T为分隔符,Z为时区

复制代码
    package org.example;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    
    
    //时间格式为:2021-01-04T22:15:06.714Z
    public class Time {
    public static void test(String date) throws ParseException {
        //设置时间格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
        //将输入时间转换为ms
        sdf.parse(date).getTime();
        Calendar cal = Calendar.getInstance();
        cal.setTimeInMillis(sdf.parse(date).getTime());
        System.out.println("格林威治时间:" + cal.getTime());
        cal.add(Calendar.HOUR, +8);
        System.out.println("北京时间:" + cal.getTime());
    }
    
    public static void main(String[] args) throws ParseException {
        test("2021-01-04T04:16:23.609Z");
    }
    }

结果:

在这里插入图片描述
2. 时间格式为:2021-01-04 04:16:23.609
复制代码
    package org.example;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    
    
    //时间格式为:2021-01-04 22:15:06.714
    public class Time {
    public static void test(String date) throws ParseException {
        //设置时间格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        //将输入时间转换为ms
        sdf.parse(date).getTime();
        Calendar cal = Calendar.getInstance();
        cal.setTimeInMillis(sdf.parse(date).getTime());
        System.out.println("格林威治时间:" + cal.getTime());
        cal.add(Calendar.HOUR, +8);
        System.out.println("北京时间:" + cal.getTime());
    }
    
    public static void main(String[] args) throws ParseException {
        test("2021-01-04 04:16:23.609");
    }
    }

结果:

在这里插入图片描述
3.当前时间
复制代码
    package org.example;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    
    
    //时间格式为:2021-01-04 22:15:06.714
    public class Time {
    public static void test() throws ParseException {
        Date nowTime = new Date();
        Calendar cal = Calendar.getInstance();
        cal.setTimeInMillis(nowTime .getTime());
        System.out.println("格林威治时间:" + cal.getTime());
        cal.add(Calendar.HOUR, +8);
        System.out.println("北京时间:" + cal.getTime());
    }
    
    public static void main(String[] args) throws ParseException {
        test();
    }
    }

结果:

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~