public static String toReadableTime( long seconds, String secondSaid, String secondsSaid, String minuteSaid, String minutesSaid, String hourSaid, String hoursSaid, String daySaid, String daysSaid) { long day = TimeUnit.SECONDS.toDays(seconds); long hours = TimeUnit.SECONDS.toHours(seconds) - (day * 24); long minute = TimeUnit.SECONDS.toMinutes(seconds) - (TimeUnit.SECONDS.toHours(seconds) * 60); long second = TimeUnit.SECONDS.toSeconds(seconds) - (TimeUnit.SECONDS.toMinutes(seconds) * 60); String newSeconds = second == 1 ? "1 " + secondSaid : second + " " + secondsSaid; String newMinutes = minute == 1 ? "1 " + minuteSaid : minute + " " + minutesSaid; String newHours = hours == 1 ? "1 " + hourSaid : hours + " " + hoursSaid; String newDays = day == 1 ? "1 " + daySaid : day + " " + daysSaid; if (day == 0) { if (hours == 0) { if (minute == 0) { return newSeconds; } else { return newMinutes + " " + (second == 0 ? "" : newSeconds); } } else { return newHours + " " + (minute == 0 ? "" : newMinutes) + " " + (second == 0 ? "" : newSeconds); } } else { return newDays + " " + (hours == 0 ? "" : newHours) + " " + (minute == 0 ? "" : newMinutes) + " " + (second == 0 ? "" : newSeconds); } } public static long parseTimeToSeconds(String string) { if (string == null || string.isEmpty()) { return -1; } char[] c = string.toCharArray(); if (!isInt(c[0])) { return -1; } string = string.replaceAll("[^0-9smhdw]", ""); if (string.isEmpty()) { return -1; } if (string.contains("w")) { string = string.replaceAll("[^0-9]", ""); if (string.isEmpty()) { return -1; } return TimeUnit.DAYS.toSeconds(Long.parseLong(string) * 7); } TimeUnit unit = string.contains("d") ? TimeUnit.DAYS : string.contains("h") ? TimeUnit.HOURS : string.contains("m") ? TimeUnit.MINUTES : TimeUnit.SECONDS; string = string.replaceAll("[^0-9]", ""); if (string.isEmpty()) { return -1; } return unit.toSeconds(Long.parseLong(string)); } private static boolean isInt(char c) { return c == '0' || c == '1' || c == '2' || c == '3' || c == '4' || c == '5' || c == '6' || c == '7' || c == '8' || c == '9'; }