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

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

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

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

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

fun main(args: Array<String>) {
    // Format y-M-d or yyyy-MM-d
    val string = "2017-07-25"
    val date = LocalDate.parse(string, DateTimeFormatter.ISO_DATE)

    println(date)
}
```

运行该程序时，输出为：

```kt
2017-07-25
```

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

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

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

* * *

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

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

fun main(args: Array<String>) {
    val string = "July 25, 2017"

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

    println(date)
}
```

When you run the program, the output will be:

```kt
2017-07-25
```

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

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

以下是等效的 Java 代码：[将字符串转换为日期的 Java 程序](/java-programming/examples/string-date "Java program to convert string to date")