带T带Z的时间字符串使用LocalDateTime类转换成时间/时间戳类型

本文介绍了一种将特定格式的时间字符串(包含T、Z及毫秒值)转换为时间类型和时间戳的方法。通过示例代码展示了如何使用Java的DateTimeFormatter进行格式匹配,并将字符串时间转换为LocalDateTime对象,进而转换为时间戳。

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

使用metricbeat等一些服务的时候会遇到生成的消息中带T带Z的情况,而且还带毫秒值,很多时候对数据的精度要求没有很高,毫秒也扔掉了,z、t也直接replace掉了。今天强迫症犯了想原封不动的将这种格式的字符串时间转换成时间类型或者事件戳类型。

代码

public static void main(String[] args) {
	//字符串时间,带T带Z带毫秒值
    String stime =  "2020-11-18T04:31:40.886Z";
    //创建对应的pattern,注意T和Z两个字符使用单引号引起来,毫秒值使用大写S表示
    DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
   	//字符串时间转换成时间类型
    LocalDateTime date = LocalDateTime.parse(stime, pattern);
    //时间类型转时间戳类型
    long ts = date.toInstant(ZoneOffset.of("+8")).toEpochMilli();
    System.out.println(date+" \nts:"+ts);
}

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值