【问题标题】:Java variable to time string conversionJava 变量到时间字符串的转换
【发布时间】:2020-10-01 07:36:26
【问题描述】:

如果我有 3 个变量 h、m、s 包含值 12、15、00,如何将这些变量转换为时间字符串?

int h=12; int m=15; int s=00; into HH:mm:ss

【问题讨论】:

  • 什么是“时间字符串”?这三个变量会是什么样子?
  • java.time.LocalDate
  • @MCEmperor 是这样的吗? LocalTime.of
  • @matt 是的,完全正确。 (我说的是LocalDate,但当然是指LocalTime。)
  • edit您的问题并发布您希望获得的示例“时间字符串”。而且,顺便问一下,你拿过tour 吗?你去过Help Center吗?你有没有读过这个:How do I ask a good question?顺便说一句,你在参观完帮助中心后会获得一枚铜牌。

标签: java time


【解决方案1】:

这真的取决于你想要完成什么。如果是用于屏幕秒表,一个简单的h + ":" + m + ":" + s; 可能就足以满足您的目的。

如果您希望数字始终填充为两位数,也许 String.format("%02d:%02d:%02d", h, m, s) 就是您要查找的内容。

如果您想跟踪世界上的某个实时时间,正如 MC Emperor 所指出的,使用标准库的 Date API 更合适。

【讨论】:

  • @JoydeepDan:请使用网站的点赞和接受机制,不客气。 :)
【解决方案2】:

首先你需要准备你的字符串 DateTime:

String localTimeStr = h + ":" + m + ":" + s;

然后你将它与 LocalTime 一起使用:

LocalTime localTimeFromStr = LocalTime.parse(localTimeStr);

【讨论】:

  • 我不想要本地计算机时间,我有用户给定的变量 h,m,s 包含一些值,我想制作 "HH: mm: ss" 格式,我想要用它添加另一个时间字符串。
  • @JoydeepDan 这不是 LocalTime。
【解决方案3】:

您有几个选择。第一:

String tm = String.format("%02d:%02d:%02d", h, m, s);

生成的字符串将看起来像您想要的那样,其中 0 个填充值由“:”分隔。

您还可以创建一个表示您的时间的“LocalTime”对象。

LocalTime tm = LocalTime.of(h, m, s);

现在,这代表了一个时间,您可以这样使用它。您也可以将其格式化为字符串。

String rep = tm.format(DateTimeFormatter.ISO_LOCAL_TIME);

例如。

LocalTime lt = LocalTime.of(12, 3, 0);
System.out.println(lt.format(DateTimeFormatter.ISO_LOCAL_TIME));

12:03:00

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    • 2010-10-19
    • 2013-06-21
    • 1970-01-01
    • 2014-11-24
    • 2018-07-15
    相关资源
    最近更新 更多