Java 字符串转LocalTime

在 Java 中,LocalTime 是一个表示时间的类,它不包含日期和时区信息,仅仅表示一个时间点。如果我们想要将一个字符串表示的时间转换成 LocalTime 类型,Java 中提供了一些方法和类来完成这个任务。

使用 DateTimeFormatter 类

DateTimeFormatter 是 Java 8 中引入的日期时间格式化类,它提供了一种简单的方式来将字符串转换成特定的日期时间格式。我们可以使用 DateTimeFormatter 类,将一个字符串转换成 LocalTime 类型。

下面是一个示例代码:

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class StringToLocalTimeExample {
    public static void main(String[] args) {
        String timeString = "10:30";

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");
        LocalTime localTime = LocalTime.parse(timeString, formatter);

        System.out.println("转换后的 LocalTime 对象:" + localTime);
    }
}

在上面的示例中,首先定义了一个字符串 timeString,表示一个时间点。接下来使用 DateTimeFormatterofPattern 方法创建一个格式化器,指定了字符串的时间格式为 "HH:mm",其中 "HH" 表示小时数,"mm" 表示分钟数。然后,使用 LocalTime 类的 parse 方法,将字符串 timeString 转换成 LocalTime 类型的对象。最后,使用 System.out.println 打印输出转换后的 LocalTime 对象。

如果字符串的格式与预期的格式不匹配,会抛出 DateTimeParseException 异常。因此,在使用 LocalTime.parse 方法时,要确保字符串的格式与指定的格式化器一致。

使用 SimpleDateFormat 类

在 Java 8 之前的版本中,我们可以使用 SimpleDateFormat 类来将字符串转换成 LocalTime 类型。SimpleDateFormat 是一个日期时间格式化类,它可以将字符串按照指定的格式转换成日期时间对象。

下面是一个示例代码:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalTime;

public class StringToLocalTimeExample {
    public static void main(String[] args) {
        String timeString = "10:30";

        SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");
        try {
            java.util.Date date = formatter.parse(timeString);
            LocalTime localTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalTime();
            System.out.println("转换后的 LocalTime 对象:" + localTime);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

在上面的示例中,首先定义了一个字符串 timeString,表示一个时间点。接下来使用 SimpleDateFormat 的构造方法创建一个格式化器,指定了字符串的时间格式为 "HH:mm",其中 "HH" 表示小时数,"mm" 表示分钟数。然后,使用 formatter.parse 方法将字符串 timeString 转换成 java.util.Date 类型的对象。最后,通过 java.util.Date 类的 toInstantatZonetoLocalTime 方法,将 java.util.Date 类型的对象转换成 LocalTime 类型的对象。

需要注意的是,SimpleDateFormat 是线程不安全的,因此在多线程环境下使用时需要进行同步处理。

总结

本文介绍了如何将字符串转换成 LocalTime 类型的对象。我们可以使用 DateTimeFormatter 类和 SimpleDateFormat 类来完成这个任务。DateTimeFormatter 是 Java 8 中引入的日期时间格式化类,提供了一种简单的方式来转换日期时间格式;SimpleDateFormat 是 Java 8 之前的版本中使用的日期时间格式化类,它可以将字符串按照指定的格式转换成日期时间对象。通过掌握这两种方式,我们可以方便地将字符串转换成 LocalTime 类型,进而进行时间的处理和操作。

参考文献:

  1. [Java 8 Date and Time API](
  2. [DateTimeFormatter (Java Platform SE 8)](
  3. [SimpleDateFormat (Java Platform SE 8)](