千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Java字符串转时间的几种方法

Java字符串转时间的几种方法

来源:千锋教育
发布人:xqq
时间: 2023-11-23 21:21:16 1700745676

一、SimpleDateFormat类解析字符串

处理字符串转时间,使用SimpleDateFormat类是常见的方法之一。format()方法可以将Date类型转化为指定格式的字符串,parse()方法可以将指定格式的字符串转化为Date类型。


    String timeStr = "2020-01-01 00:00:00";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = sdf.parse(timeStr);

需要注意,SimpleDateFormat类处理字符串转时间时,格式要保证与字符串格式一致,否则会抛出ParseException异常。

二、DateTimeFormatter类解析字符串

DateTimeFormatter类也可以解析字符串,它是线程安全的,是Java 8引入的新类。


    String timeStr = "2020-01-01T00:00:00";
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
    LocalDateTime dateTime = LocalDateTime.parse(timeStr, formatter);

需要注意,DateTimeFormatter类格式化字符串时,对于月、日等位数不足两位的数,要用0补齐,例如09月。同时,T代表ISO-8601标准中的日期和时间分隔符。

三、Instant类解析字符串

Instant类也可以将字符串转化为时间,它是Java 8新增的类,提供了一种方便的处理时间的方法。


    String timeStr = "2020-01-01T00:00:00Z";
    Instant instant = Instant.parse(timeStr);

需要注意,Instant类解析字符串时,字符串要符合ISO-8601标准。同时,Z代表UTC时区的时间,如果字符串中不包含时区信息,Instant类默认按照UTC时区处理。

四、ZonedDateTime类解析字符串

ZonedDateTime类可以解析字符串,并提供了一些方便的方法来处理时区信息,它也是Java 8新增的类。


    String timeStr = "2020-01-01T00:00:00+08:00[Asia/Shanghai]";
    ZonedDateTime zonedDateTime = ZonedDateTime.parse(timeStr);

需要注意,ZonedDateTime类解析字符串时,时区信息要放在方括号中,并符合区域/城市的形式,例如[Asia/Shanghai]代表中国上海时区。

五、总结

以上几种方法都可以将字符串转化为时间,具体应用时需要根据业务需求和时间格式选择不同的方法。对于日期格式,应该根据国际标准ISO 8601的日期和时间表示法来选择。ISO 8601的日期和时间表示法的官方文档为https://www.iso.org/iso-8601-date-and-time-format.html。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT