gpt4 book ai didi

Java:将包含天、小时、分钟的字符串转换为日期对象

转载 作者:行者123 更新时间:2023-11-30 02:05:08 32 4
gpt4 key购买 nike

我的应用程序给我一个字符串,例如 1 天 15 分钟或 15 小时 10 分钟等。我想将此字符串转换为 Date 对象。我正在尝试这样的事情

Date afterAddingTenMins = new Date(t + (Integer.valueOf(duration) * ONE_MINUTE_IN_MILLIS));

但这给了我无效的整数异常,因为字符串包含小时和分钟之类的词。
最好的方法是什么。

谢谢。

最佳答案

这是一个 Scala 版本:

object PrettyTimeParser {
private val YEAR_REGEX = """(?<YEAR>\d+)\s*years?""".r
private val MONTH_REGEX = """(?<MONTH>\d+)\s*months?""".r
private val WEEK_REGEX = """(?<WEEK>\d+)\s*weeks?""".r
private val DAY_REGEX = """(?<DAY>\d+)\s*days?""".r
private val HOUR_REGEX = """(?<HOUR>\d+)\s*hours?""".r
private val MINUTE_REGEX = """(?<MINUTE>\d+)\s*minutes?""".r

private def lookup(regex: scala.util.matching.Regex, s: String): Int = {
Try(regex.findAllIn(s).toList.headOption.map(_.split(" ")).map(_(0).toInt)).getOrElse(None).getOrElse(0)
}

def parse(str: String): Option[DateTime] = {
val year = lookup(YEAR_REGEX, str)
val month = lookup(MONTH_REGEX, str)
val week = lookup(WEEK_REGEX, str)
val day = lookup(DAY_REGEX, str)
val hour = lookup(HOUR_REGEX, str)
val minute = lookup(MINUTE_REGEX, str)

val now = DateTime.now()

val dt = DateTime.now().plusYears(year)
.plusMonths(month)
.plusWeeks(week)
.plusDays(day)
.plusHours(hour)
.plusMinutes(minute)

if (dt.isAfter(now.getMillis)) Option(dt) else None
}

}

关于Java:将包含天、小时、分钟的字符串转换为日期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30793323/

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