Java String to Date

2024 年 12 月 8 日 | 阅读 8 分钟

在 Java 中,字符串变量可以表示为日期的格式。任务是将字符串变量转换或更改为日期格式。让我们详细了解用于将字符串变量转换为日期的各种方法和方法。

示例 1

输入: String s = "2020-03-28T10:15:01Z"

输出: 2020-03-28T10:15:01Z

解释: 存储在字符串 s 变量中的值已转换为日期格式。

示例 2

输入: String s = "2024-02-06T15:23:01Z"

输出: 2024-02-06T15:23:01Z

字符串转日期方法

可以用于将字符串值转换为日期格式的各种方法和技术如下。让我们详细了解它们。

  1. 使用 SimpleDateFormat 类
  2. 使用 Instant 类
  3. 使用 DateTimeFormatter 类
  4. 使用 SimpleDateFormat 类
Java Convert String to Date

使用 SimpleDateFormat.parse() 方法

让我们看看 Java 中将字符串转换为日期的简单代码。

StringToDateExample1.java

输出

31/12/1998	Thu Dec 31 00:00:00 IST 1998

让我们看看 Java 中将不同类型的字符串转换为日期的另一个代码。在这里,我们使用了 SimpleDateFormat 类,不同的日期格式。

StringToDateExample2.java

输出

31/12/1998	Thu Dec 31 00:00:00 IST 1998
31-Dec-1998	Thu Dec 31 00:00:00 IST 1998
12 31, 1998	Thu Dec 31 00:00:00 IST 1998
Thu, Dec 31 1998	Thu Dec 31 00:00:00 IST 1998
Thu, Dec 31 1998 23:37:50	Thu Dec 31 23:37:50 IST 1998
31-Dec-1998 23:37:50	Thu Dec 31 23:37:50 IST 1998

使用 Instant 类

在 Java 中,java.time 包包含 Instant 类,该类以纳秒精度为用户提供精度。与 Date 类相比,Instant 类提供的精度更高。

此方法的方法或算法非常简单。需要转换为字符串的字符串必须从用户处获取输入或分配值。然后必须创建一个空的 Instant 时间戳对象。成功创建时间戳对象后,将使用 Java 的 Instant.parse() 方法将字符串转换为日期。创建不成功时,将抛出 DateTimeParseException

让我们通过一个示例 Java 程序来详细了解这种方法。

文件名: StringToDate.java

输出

Date Converted From String: 2020-03-28T10:15:01Z

这是将字符串值转换为日期格式的程序或方法。让我们看看将字符串转换为日期的其他方法或方法。

使用 DateTimeFormatter 类

在此方法或技术中,将使用 DateTimeFormatter 类将字符串转换为日期格式。此方法的方法或算法如下所述。

通过用户获取需要转换为日期的字符串,或手动分配值。必须创建一个空的 LocalDate 对象。然后必须使用 LocalDate.parse() 方法将字符串转换为日期格式。成功转换后,显示结果日期。如果输入字符串无效,可能会抛出 IllegalArgumentException。

让我们通过一个 Java 示例程序来详细了解这种方法。

文件名: StringToDate1.java

输出

2002-09-26

使用 SimpleDateFormat 类

在此方法或技术中,将使用 SimpleDateFormat 类将字符串转换为日期格式。让我们详细了解算法或方法。

必须声明输入字符串并为其赋值。必须创建一个 Date 类的对象,该对象引用 SimpleDateFormat 类。然后必须将日期格式解析到其中。然后必须显示最终结果。让我们通过一个 Java 示例程序来详细了解这种方法。

文件名: StringToDate2.java

输出

Random Date String: 15/09/1996
Parsed Date: Sun Sep 15 00:00:00 IST 1996
Age: 27 years

Random Date String: 01/11/1950
Parsed Date: Wed Nov 01 00:00:00 IST 1950
Age: 73 years

Random Date String: 20/11/1955
Parsed Date: Sun Nov 20 00:00:00 IST 1955
Age: 68 years

Random Date String: 09/07/1927
Parsed Date: Sat Jul 09 00:00:00 IST 1927
Age: 96 years

Random Date String: 27/08/1913
Parsed Date: Wed Aug 27 00:00:00 IST 1913
Age: 110 years

Java 字符串转日期选择题

1. 关于 Java 中的 SimpleDateFormat 类,以下哪项是正确的?

  1. 它是线程安全的,可以在多线程环境安全使用。
  2. 它支持解析除英语以外多种语言的日期字符串。
  3. 它允许自定义日期格式化模式以解析不同的日期格式。
  4. 它会根据系统的区域设置自动调整时区。

答案:C

解释: Java 中的 SimpleDateFormat 允许开发人员使用 'dd'、'MM'、'yyyy' 等字母指定自定义日期格式模式,以将各种格式的日期字符串解析为 Date 对象。这种灵活性对于处理各种日期表示至关重要。


2. 在 Java 中使用 SimpleDateFormat 解析日期字符串时,parse() 方法返回什么?

  1. 包含解析日期的 String 对象。
  2. 一个 int,表示自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。
  3. 一个表示解析日期和时间的 Date 对象。
  4. 一个指示日期格式无效的异常。

答案:C

解释: SimpleDateFormat 的 parse() 方法返回一个 Date 对象,该对象表示根据指定的格式模式从给定字符串解析的日期和时间。


3. 使用 SimpleDateFormat,以下哪个模式能正确表示格式“January 15, 2023 09:30:00 AM”?

  1. "MMMM dd, yyyy hh:mm a"
  2. "MMMM dd, yyyy HH:mm a"
  3. "MMM dd, yyyy hh:mm a"
  4. "MMM dd, yyyy HH:mm a"

答案:A

解释: 模式“MMMM dd, yyyy hh:mm

a”正确表示日期格式“January 15, 2023 09:30:00 AM”,其中

  • "MMMM" 表示完整的月份名称(例如,January)
  • "dd" 表示月份中的第几天
  • "yyyy" 表示年份
  • "hh" 表示 12 小时制的小时
  • "mm" 表示分钟
  • "ss" 表示秒
  • "a" 表示 AM/PM 标记

4. 在使用 SimpleDateFormat 将字符串转换为日期时,以下哪个步骤无效?

  1. 使用所需的日期格式模式创建 SimpleDateFormat 实例。
  2. 在 SimpleDateFormat 实例上调用 format() 方法。
  3. 在 SimpleDateFormat 实例上调用 parse() 方法并传入日期字符串。
  4. 使用 try-catch 块适当地处理 ParseException。

答案:B

解释: format() 方法用于将 Date 对象转换为格式化的日期字符串,而不是将日期字符串解析为 Date 对象。对于解析,正确的方法是 parse()。


5. 在 Java 中将字符串转换为日期时处理 ParseException 的意义是什么?

  1. 它确保解析后的日期符合 ISO 8601 格式。
  2. 它允许开发人员优雅地处理因日期格式不正确而导致的错误。
  3. 它会自动将解析后的日期调整到系统的时区。
  4. 它保证所有日期字符串都转换为 UTC 时间。

答案:B

解释: 当提供的日期字符串与预期的格式模式不匹配时,SimpleDateFormat.parse() 会抛出 ParseException。处理此异常允许开发人员做出适当的响应,例如向用户提供反馈或记录错误,从而确保日期解析操作的健壮性。