如何将包含月份和年份的日语日期拆分为日期格式

时间:2020-07-09 13:11:40

标签: date kotlin simpledateformat

我想将格式为“ 2020年7月”的日语日期拆分为单独的数组,以便从中获取年月。

我尝试使用SimpleDateFormatter格式化日语日期,并用“ /”分隔年份和日期,但输出错误:

尝试过此代码:

   val inputFormat = SimpleDateFormat("YYYY年M月")
   val date = inputFormat.parse("2020年7月")
   val outputText = SimpleDateFormat("YYYY/MM").format(date)

输入:2020年7月 产量:2020/12

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

为此,您应该使用java.time,因为来自java.util的日期时间类已经过时(但仍不建议弃用)。

以下示例显示了一种使用java.time.format.DateTimeFormatter来解析根据某种模式格式化的Stringjava.time.YearMonth的方法,该类显然是为了在一年,不考虑月份中的某天:

import java.time.YearMonth;
import java.time.format.DateTimeFormatter;

fun main() {
    val jpYearMonth = "2020年7月"
    val japaneseDtf = DateTimeFormatter.ofPattern("uuuu年M月")
    val yearMonth = YearMonth.parse(jpYearMonth, japaneseDtf)
    println(yearMonth.format(DateTimeFormatter.ofPattern("uuuu/MM")))
}

为了获得所需的输出,此代码必须使用不同的DateTimeFormatter定义输出模式,因为默认模式(仅在println(yearMonth)时内部使用)将用音符分隔({{ 1}}):

2020-07