在日常编程中,我们经常需要进行字符串和日期之间的转换,比如将用户输入的生日字符串转换成日期格式进行计算。而在Java语言中,String和Date是两种常用的数据类型,因此对Java String转日期的掌握是非常必要的。
Java String转日期的方法
Java String转日期有多种方式,其中最常用的两种方法分别是使用SimpleDateFormat类和使用DateTimeFormatter类。下面我们详细介绍这两种方法:
1. 使用SimpleDateFormat类
SimpleDateFormat是Java中一个用于格式化日期的类,它可以将日期类型转换成字符串类型,也可以将字符串类型转换成日期类型。通过SimpleDateFormat,我们可以按照需要自定义日期的格式,比如"yyyy-MM-dd HH:mm:ss","yyyy/MM/dd"等。
示例代码:
String str = "2021-04-10 12:30:00";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = sdf.parse(str);
上述代码中,我们首先定义了一个String类型的日期字符串,然后用SimpleDateFormat的parse方法将其转换成Date类型的日期。
2. 使用DateTimeFormatter类
DateTimeFormatter是Java8中新增的一个类,它可以将日期类型转换成字符串类型,也可以将字符串类型转换成日期类型。与SimpleDateFormat不同的是,DateTimeFormatter是线程安全的,并且支持更多格式,比如"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"。
示例代码:
String str = "2021-04-10T12:30:00.000Z";DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");Instant instant = Instant.parse(str);ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of("UTC+8"));LocalDateTime dateTime = zonedDateTime.toLocalDateTime();
上述代码中,我们首先定义了一个String类型的日期字符串,并使用DateTimeFormatter的ofPattern方法来指定日期格式。然后我们将日期字符串转换成Instant类型,再通过Instant的atZone方法将其转换成带时区的ZonedDateTime类型。最后将ZonedDateTime类型转换为不带时区的LocalDateTime类型。
总结
Java String转日期是Java编程中基础而重要的内容,掌握了这一技能可以使我们在处理时间上更加得心应手。本文介绍了两种Java String转日期的方法,分别是使用SimpleDateFormat类和使用DateTimeFormatter类。通过这两种方法的介绍,读者应该能够更加熟练地应用Java String转日期。