java 8 的日期时间 api 使用 localdatetime.parse() 方法将字符串解析为 localdatetime 对象。默认情况下,该方法要求输入字符串必须符合 iso-8601 格式(如 "2023-10-27t10:30:00"),如果格式不匹配会抛出 datetimeparseexception。对于自定义格式的字符串,需要传入一个 datetimeformatter 实例作为第二个参数来指定具体的解析模式。

如何解析符合 ISO-8601 标准格式的字符串?
直接调用 LocalDateTime.parse() 即可处理标准的 ISO-8601 格式字符串。这种格式是 Java 8 日期时间 API 的默认规范,无需额外配置解析器。当输入字符串严格遵循 "yyyy-MM-ddTHH:mm:ss" 或其扩展形式时,解析过程最为简单且性能最高。

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class IsoParseExample {
public static void main(String[] args) {
// 标准的 ISO-8601 格式字符串
String isoString = "2023-10-27T10:30:45";
// 直接解析,无需指定格式化器
LocalDateTime dateTime = LocalDateTime.parse(isoString);
System.out.println("解析结果: " + dateTime);
System.out.println("类型: " + dateTime.getClass().getSimpleName());
}
}
如何解析自定义格式的日期时间字符串?
当字符串格式不符合 ISO-8601 标准时,必须创建对应的 DateTimeFormatter 并传递给 parse 方法。例如,处理 "2023/10/27 10:30:45" 或 "27-10-2023 10:30" 这类非标准格式。通过定义模式字符串(如 "yyyy/MM/dd HH:mm:ss"),可以精确控制解析行为,确保不同格式的输入都能正确转换为 LocalDateTime 对象。

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class CustomFormatParseExample {
public static void main(String[] args) {
// 自定义格式的字符串
String customString = "2023/10/27 10:30:45";
// 定义匹配的 DateTimeFormatter
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
// 传入格式化器进行解析
LocalDateTime dateTime = LocalDateTime.parse(customString, formatter);
System.out.println("解析结果: " + dateTime);
System.out.println("格式化器模式: yyyy/MM/dd HH:mm:ss");
}
}
解析过程中遇到格式不匹配时会发生什么?
如果输入的字符串与指定的 DateTimeFormatter 模式不匹配,或者在解析 ISO-8601 格式时出现非法字符,程序会抛出 java.time.format.DateTimeParseException。这是一个运行时异常,表明解析失败。开发者需要在代码中捕获此异常以提供友好的错误提示或进行回退处理。例如,尝试用 "yyyy-MM-dd" 模式去解析包含时间的字符串,或者用 "HH:mm" 模式去解析包含日期的字符串,都会触发该异常。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











