【问题标题】:Joda-Time String to LocalTime 24-hour equivalentJoda-Time 字符串到 LocalTime 24 小时等效值
【发布时间】:2014-07-21 02:56:11
【问题描述】:

我有这个时间。晚上 8 点 32 分 00 秒。如何将其转换为 24 小时 Joda-Time LocalTime 格式? Joda-Time 库中没有时间转换器

【问题讨论】:

  • 时间值和格式是不同的概念。首先将String 解析为LocalTime,然后按照您想要的方式对其进行格式化
  • 将时间转换为本地时间后,如何将其转换为等效的 24 小时格式?在这种情况下,晚上 8:32:00 是 20:32:00?
  • 使用DateTimeFormatter

标签: java date time jodatime


【解决方案1】:

首先将String 解析为LocalTime...

String timeValue = "8:32:00 PM";
DateTimeFormatter parseFormat = new DateTimeFormatterBuilder().appendPattern("h:mm:ss a").toFormatter();
LocalTime localTime = LocalTime.parse(timeValue, parseFormat);

然后格式化结果...

DateTimeFormatter outputFormat = new DateTimeFormatterBuilder().appendPattern("H:mm:ss").toFormatter();
String formatted = localTime.toString(outputFormat);
System.out.println(formatted);

这将输出20:32:00

记住,LocalTime的值和格式是两个独立的概念,不能影响LocalTime对象本身的“格式”,只能将值的概念翻译成String表示(通过格式化程序)

【讨论】:

  • 但是如果我的时间是这种格式呢? “晚上 8 点 32 分”?
  • @user962206 你什么意思? String 的值为 8:32 PM?然后您需要更改parseFormat以满足您的要求
  • @MadProgrammer 生成字符串表示的代码可以简单得多。 Joda-Time LocalTime 类已重载 the toString method 以获取模式的字符串。 String formatted = localTime.toString( "H:mm:ss" );格式化程序的整行可以删除。
  • @BasilBourque 是的,我是故意走很长的路来进行演示的……我也是从 Java 8 跨过来的,所以我肯定很迂腐
【解决方案2】:

如果我理解你的问题,

将时间转换为本地时间后,如何将其转换为等效的 24 小时格式?

您将使用DateTimeFormat 创建一个DateTimeFormatter,就像这样 -

DateTimeFormatter fmt = DateTimeFormat.forPattern("HH:mm:ss");
String str = fmt.print(dt);

摘自链接的 javadoc,

H       hour of day (0~23)           number        0
m       minute of hour               number        30
s       second of minute             number        55

【讨论】:

    【解决方案3】:

    你不想转换时间(它们是相同的时间),你想格式化时间。 Joda 有一个 DateTimeFormatter 类(详见http://www.joda.org/joda-time/key_format.html)。

    你可以像这样使用它:

    DateTimeFormatter fmt = DateTimeFormat.forPattern("HH:mm:ss");
    String str = date.toString(fmt);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      • 2015-05-15
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      相关资源
      最近更新 更多