Here you can find the source of formatTime(long time, String syntax, boolean extraZeros)
Parameter | Description |
---|---|
time | The time to convert to min:sec |
syntax | The string with the above options which will be replaced with the time. |
public static String formatTime(long time, String syntax, boolean extraZeros)
//package com.java2s; /*/* w w w . j av a2 s . c om*/ * The MIT License (MIT) * * Copyright (c) 2016 Rojoss <http://jroossien.com> * Copyright (c) 2016 contributors * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ public class Main { public static final int MSEC_IN_DAY = 86400000; public static final int MSEC_IN_HOUR = 3600000; public static final int MSEC_IN_MIN = 60000; public static final int MSEC_IN_SEC = 1000; /** * Format a timestamp to a string with days/hours/mins/secs/ms. * For example: '%Dd %H:%M:%S' will be replaced with something like '1d 23:12:52' * The possible options in the syntax are: * %D = Days * %H = Hours * %M = Minutes * %S = Seconds * %MS = MilliSeconds * %% Remainder percentage of seconds with 1 decimal like '%S.%%s' could be '34.1s' * %%% Remainder percentage of seconds with 2 decimals like '%S.%%%s' could be '34.13s' * * @param time The time to convert to min:sec * @param syntax The string with the above options which will be replaced with the time. * @return Formatted time string. */ public static String formatTime(long time, String syntax, boolean extraZeros) { //time = time / 1000; int days = (int) time / MSEC_IN_DAY; time = time - days * MSEC_IN_DAY; int hours = (int) time / MSEC_IN_HOUR; time = time - hours * MSEC_IN_HOUR; int mins = (int) time / MSEC_IN_MIN; time = time - mins * MSEC_IN_MIN; int secs = (int) time / MSEC_IN_SEC; time = time - secs * MSEC_IN_SEC; int ms = (int) time; int ds = (int) time / 100; int fs = (int) time / 10; syntax = syntax.replace("%D", "" + days); syntax = syntax.replace("%H", "" + (hours < 10 && extraZeros ? "0" + hours : hours)); syntax = syntax.replace("%M", "" + (mins < 10 && extraZeros ? "0" + mins : mins)); syntax = syntax.replace("%S", "" + (secs < 10 && extraZeros ? "0" + secs : secs)); syntax = syntax.replace("%MS", "" + ms); syntax = syntax.replace("%%%", "" + fs); syntax = syntax.replace("%%", "" + ds); return syntax; } }