当前位置: 首页 > 面试题库 >

解析时间字符串,例如“ 1h 30min”

终翔
2023-03-14
问题内容

众所周知的Java库可以将时间字符串(例如“ 30min”或“ 2h 15min”或“ 2d 15h
30min”)解析为毫秒(或某种Duration对象)。Joda-Time可以做这样的事情吗?

(我维护这种方法的方法很丑陋,并且想摆脱它/将其替换为性能更好的方法。)


问题答案:

您可能需要针对自己的格式进行一些调整,但可以尝试以下方法:

PeriodFormatter formatter = new PeriodFormatterBuilder()
    .appendDays().appendSuffix("d ")
    .appendHours().appendSuffix("h ")
    .appendMinutes().appendSuffix("min")
    .toFormatter();

Period p = formatter.parsePeriod("2d 5h 30min");

请注意,如果需要使参数更灵活appendSuffix,可以使用带variants参数的参数。

更新 :Joda Time已添加Period.toStandardDuration(),并且您可以从那里getStandardSeconds()以秒为单位获取经过时间long

如果您使用的是没有这些方法的旧版本,则仍可以通过假设一天中的标准24 / hr,60min /
hr等来自己计算时间戳。(在这种情况下,请利用DateTimeConstants该类中的常量来避免需要魔术数字。)



 类似资料:
  • 问题内容: 我有一个日期时间字符串,我不知道如何在Python中解析它。 字符串是这样的: 我试过了 但是Python引发 根据Python文档: %z UTC偏移量,格式为+ HHMM或-HHMM(如果对象是天真对象,则为空字符串)。 解析此时间字符串的正确格式是什么? 问题答案: 时区解析有问题。看一下包装:

  • 问题内容: 我遇到了将“星期几”字符串转换为值的问题。我找不到包中内置的任何内容。 然后,我编写了这个简单的函数(满足了我的需求): 还有其他 建议 或 更惯用的 方式在Golang中执行此转换吗? 谢谢! 问题答案: 前言: 我在中发布了此实用程序,请参见。 是的,使用映射而不是数组,因此查找更快,更简单: 测试它: 输出(在Go Playgorund上尝试): 小费: 您甚至可以使用循环来安全

  • 本实例演示了如何通过DateFormat类的parse方法根据不同的本地环境解析日期/时间字符串,并将其转换成Date对象。在最后还演示了parse方法如何解析不符合日期/时间逻辑的字符串。 例子 : 解析日期/时间字符串 实例的代码如下: package chapter8; import java.text.DateFormat; import java.util.Date; import ja

  • 我有一个字符串时间格式。我没有找到任何格式来解析这个字符串值。有没有办法将这个字符串值转换为Gotime.Time? 编辑 - 这不是重复的问题。我知道如何解析,但我不知道我们可以使用时间格式包中列出的任何布局。这个答案清除了我的涂鸦。

  • 我从另一个表中提取DateTime时间戳结果,该表设置为: 当倾销特定价值的

  • 我有以下字符串格式的时间戳 如何将上面的时间戳字符串解析为?