全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

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

发布时间:2023-11-23 21:21:16
发布人:xqq

一、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。

java字符串转时间

相关文章

propsRequired详解

propsRequired详解

2023-11-23
手机安装Charles证书指南

手机安装Charles证书指南

2023-11-23
linux如何查看网络是否堵塞,linux查看网络阻塞延迟

linux如何查看网络是否堵塞,linux查看网络阻塞延迟

2023-11-23
深入理解LaTeXifelse

深入理解LaTeXifelse

2023-11-23

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31
在线咨询 免费试学 教程领取