【问题标题】:How to convert string HH:MM to Joda Duration?如何将字符串 HH:MM 转换为 Joda Duration?
【发布时间】:2011-01-06 20:52:28
【问题描述】:

我在表单中有一个字段来说明事件的持续时间。 说,活动将持续 15 分钟。因此该字段将具有以下值:00:15 如果要持续 1 小时:01:00 等

如何使用字符串“HH:MM”创建Joda-Time Duration 对象?

查看 Joda-Time 主页,它提到可以分别使用 ConverterManager 和 DurationConverter 从指定对象创建 Duration 对象。

我的问题是,如何实现上述接口,以便通过传递“4:30”参数来创建 Duration 对象?

提前致谢,

卢卡斯

【问题讨论】:

    标签: java jodatime


    【解决方案1】:

    我认为更好的方法是像这样使用PeriodFormatterBuilder

     PeriodFormatter hoursMinutes= new PeriodFormatterBuilder()
         .appendHours()
         .appendSeparator(":")
         .appendMinutes()
         .toFormatter();
    

    然后您可以将您的字符串解析为Period 对象并在这些对象上调用toStandardDuration() - 或继续使用Period,因为这似乎更符合您的用例。

    【讨论】:

    • 感谢您的回答。我怎么称呼它传递参数:HH:mm?
    • @Lucas:你不会的。 API 基于构建器设计模式,而不是模式字符串。我提出的代码相当于 HH:mm 模式字符串。
    • 一旦有了格式化程序,就可以调用 formatter.parsePeriod("00:15") 来获取周期对象 - joda-time.sourceforge.net/api-release/org/joda/time/format/…
    • 在 joda 时间中无法将 DateTimeFormat 用于 Period 是否有任何原因?人们可能会认为构建器模式对于特定目的来说过于冗长,并且可能希望使用简单直接的 DateTimeFormat 来格式化给定的 Period (或等效)
    猜你喜欢
    • 2020-02-26
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多