【问题标题】:How to display the date in the right format after stopWatch?如何在秒表后以正确的格式显示日期?
【发布时间】:2019-01-30 14:46:10
【问题描述】:

我最近正在研究番石榴。秒表有这样一个问题。 我有一个方法可以计算 put 方法执行的总时间和数量,以便计算 put 方法执行所花费的平均时间。

        Stopwatch stopwatch = Stopwatch.createStarted();
        cacheEntry.put(str, new CacheEntry(str));
        putCounter++;
        mapBasedStatisticsCache.setPutCounter(putCounter);
        currentTime += stopwatch.stop().elapsed(TimeUnit.NANOSECONDS);
        System.out.println(currentTime);
        mapBasedStatisticsCache.setCurrentTime(currentTime);

之后,我以纳秒为单位计算平均时间

public long getAveragePutTime() {
        return getCurrentTime() / getPutCounter();
    }

然后如何将 getAveragePutTime 方法的结果解析为 hh: mm: ss: ms 格式?

我正在尝试这样做:

public String getAveragePutTime() {
    long result = getCurrentTime() / getPutCounter();
    long hh = TimeUnit.NANOSECONDS.toHours(result);
    long mm = TimeUnit.NANOSECONDS.toMinutes(result);
    long ss = TimeUnit.NANOSECONDS.toSeconds(result);
    long ms = TimeUnit.NANOSECONDS.toMillis(result);
    return "Hours: " + hh + " minutes: " + mm + " seconds: " + ss + " millisecond: " + ms;
}

但我有这个结果:

Nanos: 128240
Hours: 0 minutes: 0 seconds: 0 millisecond: 0

【问题讨论】:

标签: java guava


【解决方案1】:

你有 128420 纳秒。那是 0.000128420 秒。那是 0.128420 毫秒。 0.128420 毫秒整数是 0 毫秒。所以你的结果其实是正常的。

但是...您还有其他问题!您的getAveragePutTime() 以您将有多余数字的方式写入。因此,当您有时间时,请将它们从剩菜中取出:

public String getAveragePutTime() {
  long result = getCurrentTime() / getPutCounter();
  long hh = TimeUnit.NANOSECONDS.toHours(result);
  result -= TimeUnit.HOURS.toNanos(hh);
  long mm = TimeUnit.NANOSECONDS.toMinutes(result);
  result -= TimeUnit.MINUTES.toNanos(mm);
  long ss = TimeUnit.NANOSECONDS.toSeconds(result);
  result -= TimeUnit.SECONDS.toNanos(mm);
  long ms = TimeUnit.NANOSECONDS.toMillis(result);
  return "Hours: " + hh + " minutes: " + mm + " seconds: " + ss + " millisecond: " + ms;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    相关资源
    最近更新 更多