JAVA本地时间转换国际ISO8601时间

博客主要围绕Java开发,介绍了将本地时间转换为国际ISO8601标准时间的内容,并进行了相关测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JAVA本地时间转换国际ISO8601标准时间

 public static String localTimeToISO8601(LocalDateTime dateTime){
        TimeZone utc = TimeZone.getTimeZone("UTC");
        DateFormat dft = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
        dft.setTimeZone(utc);
        return dft.format(Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant()));
    }

    public static String ISO8601ToLocalTime(String str){
        DateFormat dft = null;
        if(str.contains(".")){
            if(str.contains("Z")){
                dft = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
            }else {
                dft = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
            }
        }else {
            dft = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
        }
        TimeZone utc = TimeZone.getTimeZone("UTC");
        dft.setTimeZone(utc);
        Date parse = null;
        try {
            parse = dft.parse(str);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
        return LocalDateTime.ofInstant(parse.toInstant(),ZoneId.systemDefault()).toString();
    }

测试

    LocalDateTime now = LocalDateTime.now();
        //只要 精确到分钟的时间
        LocalDateTime localDateTime = LocalDateTime.of(now.getYear(), now.getMonthValue(), now.getDayOfMonth(), now.getHour(), now.getMinute(), 0,0);
        System.out.println(localDateTime);
        String s = localTimeToISO8601(localDateTime);
        System.out.println(s);
        System.out.println(ISO8601ToLocalTime(s));
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值