【问题标题】:How to show time in human readable format in Java?如何在 Java 中以人类可读的格式显示时间?
【发布时间】:2015-09-19 06:11:25
【问题描述】:

我正在制定一种逻辑,在一种方法中我以毫秒为单位获得时间。 我想显示如下:

如果时间是黑白 1 分钟 - 60 分钟,假设是 25 分钟,它将显示 - 25 分钟 如果时间是 1 小时 59 分钟,它将显示 - 1h+ 如果它比它显示的时间晚 2 小时 - 2h+ 这将持续到 24 小时。 如果它的一天和几个小时比它显示的更晚 - 1d+ 这将持续到一周,然后是一周、几个月和一年 1h+..... 1d, 1d+..... 1w, 1w+..... 1m, 1m+..... 1y, 1y+..

否则我不能使用更多。我需要使用这种方法获得良好的性能。

【问题讨论】:

  • 不同范围的“else ifs”列表似乎是要走的路。他们怎么了?您将比较多头,这非常快。与构建输出和打印输出的成本相比,这将需要更长的时间。
  • 一个月有多少周?

标签: java calendar logic


【解决方案1】:

您可以编写少量 if 并创建毫秒范围的表,例如使用具有键和值的并发哈希图。如果您的毫秒范围在 0 到 60000 - 毫秒之间,请在哈希映射中创建一个秒键和值,与 60000 到 3600000 类似,在其中创建一个分钟键和值,同样您可以适当的范围和它的值。

【讨论】:

    【解决方案2】:

    您可以使用 java.util.concurrent.TimeUnit 类,它的方法 toSeconds(long duration),toMinutes(long duration),toHiurs(long duration)....将毫秒转换为秒、分钟、小时、天等等。

    示例:`TimeUnit.MILLISECONDS.toMinutes(millis);

    【讨论】:

      猜你喜欢
      • 2015-09-30
      • 2014-02-24
      • 1970-01-01
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      • 2011-07-21
      相关资源
      最近更新 更多