# Java 程序：将字符串转换为日期

> 原文： [https://www.programiz.com/java-programming/examples/string-date](https://www.programiz.com/java-programming/examples/string-date)

#### 在此程序中，您将学习使用格式化器在 Java 中将字符串转换为日期。

## 示例 1：使用预定义的格式化器将字符串转换为日期

```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class TimeString {

    public static void main(String[] args) {
        // Format y-M-d or yyyy-MM-d
        String string = "2017-07-25";
        LocalDate date = LocalDate.parse(string, DateTimeFormatter.ISO_DATE);

        System.out.println(date);
    }
}
```

运行该程序时，输出为：

```java
2017-07-25
```

在上述程序中，我们使用了预定义的格式化器`ISO_DATE`，该格式化器采用日期字符串为`2017-07-25`或`2017-07-25 + 05:45`的格式。

`LocalDate`的`parse()`函数使用给定的格式化器解析给定的字符串。 您也可以在上面的示例中删除`ISO_DATE`格式化器，并将`parse()`方法替换为：

```java
LocalDate date = LocalDate.parse(string, DateTimeFormatter);
```

* * *

## 示例 2：使用模式格式化器将字符串转换为日期

```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class TimeString {

    public static void main(String[] args) {
        String string = "July 25, 2017";

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.ENGLISH);
        LocalDate date = LocalDate.parse(string, formatter);

        System.out.println(date);
    }
}
```

运行该程序时，输出为：

```java
2017-07-25
```

在上述程序中，我们的日期格式为`MMMM d, yyyy`。 因此，我们创建了给定模式的`formatter`。 如果您有兴趣，请检查所有[`DateTimeFormatter`模式](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html "DateTimeFormatter patterns")。

现在，我们可以使用`LocalDate.parse()`函数解析日期并获取`LocalDate`对象。