Here you can find the source of getTimeString(long value, TimeUnit unit)
public static String getTimeString(long value, TimeUnit unit)
//package com.java2s; /*//from w ww . j a v a2 s .co m * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.util.concurrent.TimeUnit; public class Main { private static int[] factors = { 1000, 1000, 1000, 1000, 60, 60, 24 }; public static String getTimeString(long value, TimeUnit unit) { if (value <= 0) return ""; int i = unit.ordinal(); TimeUnit[] units = TimeUnit.values(); TimeUnit next = null; int factor = -1; if (i < factors.length - 1) { next = units[i + 1]; factor = factors[i + 1]; long nextValue = value / factor; if (nextValue > 0) return getTimeString(value / factor, next) + " " + getTimeString(value % factor, unit); } return value + toString(unit); } public static String toString(TimeUnit unit) { switch (unit) { case HOURS: case DAYS: case MINUTES: case SECONDS: return unit.toString().substring(0, 1).toLowerCase(); case MILLISECONDS: return "ms"; case MICROSECONDS: return "micros"; case NANOSECONDS: return "ns"; } return ""; } }