gpt4 book ai didi

scala - 从解析日期获取年、月、日

转载 作者:行者123 更新时间:2023-12-04 14:41:48 28 4
gpt4 key购买 nike

我有以下代码来验证给定日期格式的日期:

val df = new SimpleDateFormat("MM/dd/yyyy");
df.setLenient(false);

try {
val date = df.parse("11/13/2014");
}
catch {
case pe: ParseException => println("date error")
}

现在,我需要的是获取三个变量中的年、月和日。实现这一目标的最佳方法是什么?请注意,我需要一个基于性能的解决方案,因为我需要验证/转换数千个日期。

最佳答案

时间

使用 Java 8 和新的日期/时间 API。更好、更清洁、面向 future 。

val dateFormat = "MM/dd/yyyy"
val dtf = java.time.format.DateTimeFormatter.ofPattern(dateFormat)
val dateString = "11/13/2014"
val d = java.time.LocalDate.parse(dateString, dtf)
val year = d.getYear

2014


val monthNumber = d.getMonthValue

11



您可以访问 Month 枚举对象。
val month = d.getMonth

Month.NOVEMBER


val dayOfMonth = d.getDayOfMonth

13



一旦您将输入解析为 java.time.LocalDate ,您可以使用 getYear 等获取年份。

要验证,请捕获 DateTimeParseException 为无效输入生成。

如果您想跳过正确的日期验证(例如为了性能)而只提取 Y、M、D - 您可以拆分字符串并获取整数,如下所示
val ymd = dateString.split("/").map(_.toInt)
ymd: Array[Int] = Array(11, 13, 2014)

关于scala - 从解析日期获取年、月、日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40589542/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com