北京时间 转 UTC时间

北京时间“ 转为“UTC时间”,根据需要转换格式不同,实现方式有所不同。

简单整理如下4种格式:

1、UTC格式:2021-11-25T12:19:27.547Z

1)方式1

代码实现如下:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

/**
 * @author Mircle Luna
 * @date 2021/11/25
 */
public class Miracle01 {

    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    private static SimpleDateFormat sdfutc = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");

    public static void main(String[] args) {
        dateToUtc(new Date());
    }

    public static void dateToUtc(Date date) {
        sdfutc.setTimeZone(TimeZone.getTimeZone("UTC"));//        sdfutc.setTimeZone(TimeZone.getTimeZone("GMT"));
        System.out.println("北京时间: " + sdf.format(date));
        System.out.println("UTC时间: " + sdfutc.format(date));
    }
}

运行结果如下:

北京时间: 2021-11-25 20:19:27.547
UTC时间: 2021-11-25T12:19:27.547Z

2)方式2

代码实现如下:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

/**
 * @author Miracle Luna
 * @date 2021/11/25
 */
public class Miracle02 {

    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    private static SimpleDateFormat sdfutc = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");

    public static void main(String[] args) {
        dateToUtc(new Date());
    }

    public static void dateToUtc(Date date) {     sdfutc.setTimeZone(TimeZone.getTimeZone("UTC"));
//        sdfutc.setTimeZone(TimeZone.getTimeZone("GMT"));
        System.out.println("北京时间: " + sdf.format(date));
        System.out.println("UTC时间: " + sdfutc.format(date));
    }
}

运行结果如下:

北京时间: 2021-11-25 20:26:20.153
UTC时间: 2021-11-25T12:26:20.153Z

2、UTC格式:2021-11-25T12:30:29.656+00:00

代码实现如下:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

/**
 * @author Miracle Luna
 * @date 2021/11/25
 */
public class Miracle03 {

    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    private static SimpleDateFormat sdfutc = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSz");

    public static void main(String[] args) {
        dateToUtc(new Date());
    }

    public static void dateToUtc(Date date) {
        sdfutc.setTimeZone(TimeZone.getTimeZone("GMT+00:00"));
        System.out.println("北京时间: " + sdf.format(date));
        System.out.println("UTC时间: " + sdfutc.format(date).replace("GMT", ""));
    }
}

运行结果如下:

北京时间: 2021-11-25 20:30:29.656
UTC时间: 2021-11-25T12:30:29.656+00:00

3、UTC格式:2021-11-25T12:33:02.000+00:00

代码实现如下:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

/**
 * @author Miracle Luna
 * @date 2021/11/25
 */
public class Miracle04 {

    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    private static SimpleDateFormat sdfutc = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.000z");

    public static void main(String[] args) {
        dateToUtc(new Date());
    }

    public static void dateToUtc(Date date) {
        sdfutc.setTimeZone(TimeZone.getTimeZone("GMT+00:00"));
        System.out.println("北京时间: " + sdf.format(date));
        System.out.println("UTC时间: " + sdfutc.format(date).replace("GMT", ""));
    }
}

运行结果如下:

北京时间: 2021-11-25 20:33:02
UTC时间: 2021-11-25T12:33:02.000+00:00

4、UTC格式:2021-11-25T12:45:39.119+0000

代码实现如下:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

/**
 * @author Miracle Luna
 * @date 2021/11/25
 */
public class Miracle05 {

    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    private static SimpleDateFormat sdfutc = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");

    public static void main(String[] args) {
        dateToUtc(new Date());
    }

    public static void dateToUtc(Date date) {
        sdfutc.setTimeZone(TimeZone.getTimeZone("UTC"));
//        sdfutc.setTimeZone(TimeZone.getTimeZone("GMT"));
        System.out.println("北京时间: " + sdf.format(date));
        System.out.println("UTC时间: " + sdfutc.format(date));
    }
}

运行结果如下:

北京时间: 2021-11-25 20:47:12
UTC时间: 2021-11-25T12:47:12.674+0000


### 使用 Hutool 库将北京时间换为 UTC 时间 为了实现从北京时间 (CST, China Standard Time) 换到 UTC 时间的功能,可以利用 `Hutool` 这一强大的工具类库中的日期时间处理功能。下面展示一段具体的 Java 代码示例来完成此操作。 ```java import cn.hutool.core.date.DateUtil; import java.util.TimeZone; public class Main { public static void main(String[] args) { // 设置为中国标准时间 CST/UTC+8 TimeZone timeZoneCN = TimeZone.getTimeZone("Asia/Shanghai"); // 获取当前系统的北京当地时间 String beijingNowStr = DateUtil.format(DateUtil.date(timeZoneCN), "yyyy-MM-dd HH:mm:ss"); // 输出本地时间为验证 System.out.println("Beijing time now is:" + beijingNowStr); // 将字符串形式的时间成Date对象并指定时区为上海即CST var dateInCst = DateUtil.parse(beijingNowStr).setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); // 把 CST 的时间化为 UTC 时间 String utcTimeStr = DateUtil.format(dateInCst, "yyyy-MM-dd'T'HH:mm:ss'Z'", TimeZone.getTimeZone("UTC")); // 打印最终得到的 UTC 时间 System.out.println("Converted to UTC time is:" + utcTimeStr); } } ``` 这段程序首先设置了目标时区为中国标准时间(通过设置时区 ID),接着获取到了当前系统下的北京时间,并将其打印出来以便对比;之后创建了一个表示该时刻但在 CST 下的新日期实例;最后一步则是把上述 CST 对应的时间点按照 UTC 来格式化输出[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值