Class TimeFormatter

java.lang.Object
net.blockhost.commons.core.TimeFormatter

public final class TimeFormatter extends Object

Utility class for formatting time durations into human-readable strings.

This class provides methods for converting durations into formatted strings suitable for display to users, such as countdown timers, cooldown displays, etc.

Example usage:

// Format seconds
TimeFormatter.formatSeconds(3661); // "1h 1m 1s"

// Format duration
TimeFormatter.format(Duration.ofMinutes(90)); // "1h 30m"

// Compact format
TimeFormatter.formatCompact(Duration.ofSeconds(125)); // "2:05"
  • Method Details

    • formatSeconds

      public static String formatSeconds(long totalSeconds)

      Formats a duration in seconds into a human-readable string.

      Format: "Xh Xm Xs" (e.g., "1h 30m 45s") Only non-zero units are included.

    • format

      public static String format(Duration duration)
      Formats a Duration into a human-readable string.
    • formatMillis

      public static String formatMillis(long millis)
      Formats a duration in milliseconds into a human-readable string.
    • formatCompact

      public static String formatCompact(long totalSeconds)

      Formats a duration in seconds into a compact MM:SS or HH:MM:SS format.

      Examples:

      • 65 seconds -> "1:05"
      • 3661 seconds -> "1:01:01"
    • formatCompact

      public static String formatCompact(Duration duration)
      Formats a Duration into a compact MM:SS or HH:MM:SS format.
    • formatLong

      public static String formatLong(long totalSeconds)

      Formats a duration with full unit names.

      Format: "X hours, X minutes, X seconds" (e.g., "1 hour, 30 minutes, 45 seconds")

    • formatLong

      public static String formatLong(Duration duration)
      Formats a Duration with full unit names.
    • parseToSeconds

      public static long parseToSeconds(String input)

      Parses a time string into seconds.

      Supported formats:

      • "30" or "30s" - 30 seconds
      • "5m" - 5 minutes (300 seconds)
      • "2h" - 2 hours (7200 seconds)
      • "1d" - 1 day (86400 seconds)
      • "1h30m" - 1 hour 30 minutes
    • parse

      public static Duration parse(String input)
      Parses a time string into a Duration.