2021-03-17T23:47:55.978+08:00 UTC时间转换

UTC时间转换

 

UTC时间,也就是国际统一时间/国际协调时,表示方法:

        YYYYMMDD T HHMMSS Z(或者时区标识)。

比如比较时间: 2021-03-17T23:47:55.978+08:00 

其中 “+08” 表示东八区。

 

要求

将数组中数值是字符串的UTC时间转换为常见的日期格式

[dream, 2021-03-17T23:47:55.978+08:00, 2021-03-17T23:57:55.978, yan]

变成:

[dream, 2021-03-17 23:47:55, 2021-03-17 23:57:55, yan]

 

处理:

思路:

1,先判断是否为日期格式

2,然后把utc日期格式的内容转换为常见的格式

 

代码:

public static void main(String[] args) {
    List<String> strList = Lists.newArrayList("dream","2021-03-17T23:47:55.978+08:00","2021-03-17T23:57:55.978","yan");
    System.out.println("======= change later===========");
    System.out.println(strList.toString());
    List<String> changeList = ListUtils.emptyIfNull(strList).stream().map(e -> {
        if (isValidDate(e)) {
            return formatTime(e);
        }
        return e;
    }).collect(Collectors.toList());
    System.out.println("======= change later===========");
    System.out.println(changeList.toString());
}

public static String formatTime(String timeStr){
    try {
        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
        SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = sdf1.parse(timeStr);
        return sdf2.format(date);
    }catch (Exception e) {
        e.printStackTrace();
    }
    return timeStr;
}

public static boolean isValidDate(String dateString) {
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    try {
        df.parse(dateString);
        return true;
    } catch (ParseException e) {
        return false;
    }
}

处理UTC时间的时候,中间的T 要加个'T',不然会识别不了,知道这个就好处理了。

 

结果:

======= change later===========
[dream, 2021-03-17T23:47:55.978+08:00, 2021-03-17T23:57:55.978, yan]
======= change later===========
[dream, 2021-03-17 23:47:55, 2021-03-17 23:57:55, yan]

 

总结:

   UTC时间的处理,主要是T格式的识别,其次format的时候只用识别前面需要的部分,把后面时间忽略掉。

  关联文章: 时间戳转换

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天狼1222

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值