Class FormatUtil

java.lang.Object
com.inductiveautomation.ignition.common.FormatUtil

public class FormatUtil extends Object
  • Field Details

    • EMAIL_PATTERN

      public static final Pattern EMAIL_PATTERN
  • Method Details

    • formatByteSize

      public static String formatByteSize(long numBytes)
      Formats a size of bytes, appropriately rounding to bytes, kb, mb, etc
    • formatDurationSince

      public static String formatDurationSince(long millisStart)
      Shortcut, equivalent to formatDuration(System.currentTimeMillis()-millisStart)
    • formatDurationSinceNano

      public static String formatDurationSinceNano(long nanoStart)
      Convenience function for using nanoTime for diffs. Note, however, that internally the value is converted to milliseconds, so this is not useful for formatting sub-millisecond values.
    • formatDuration

      public static String formatDuration(long millis)
      Formats a number of milliseconds as a human-readable string, like "5 hours, 35 minutes, 28 seconds"
    • formatDuration

      public static String formatDuration(Locale locale, long millis)
      Formats a number of milliseconds as a human-readable string, like "5 hours, 35 minutes, 28 seconds"
    • formatDuration

      public static String formatDuration(Locale locale, long millis, FormatUtil.DurationFormatStyle style)
    • formatDuration

      public static String formatDuration(Locale locale, long millis, FormatUtil.DurationFormatStyle style, boolean alwaysShowMillis)
    • formatDurationSince

      public static String formatDurationSince(long millisStart, FormatUtil.DurationFormatStyle style)
    • formatDuration

      public static String formatDuration(long millis, FormatUtil.DurationFormatStyle style)
    • customToString

      public static boolean customToString(Throwable ex)
      Returns true if the given throwable uses a custom implementation of toString()
    • getStacktraceCompact

      public static String getStacktraceCompact(Throwable ex)
    • getStacktraceFull

      public static String getStacktraceFull(Throwable ex)
    • formatDateFull

      public static String formatDateFull(Date value)
      Returns a date formated to yyyy-MM-dd hh:mm:ss.S
    • formatSafe

      public static String formatSafe(String value, Object... formatArgs)
      Performs String.format() on the value, with the provided args, but catches the IllegalFormatException that the function might throw. If formatArgs is null, no operation is performed and the value is returned.
    • formatSafe

      public static String formatSafe(@Nullable org.apache.log4j.Logger log, @Nullable String value, @Nullable Object... formatArgs)
      Performs String.format() on the value, with the provided args, but catches the IllegalFormatException that the function might throw. If formatArgs is null, no operation is performed and the value is returned. If the logger parameter is not null, a warning will be logged if an error occurs.
    • getDecimalFormatSymbols

      public static DecimalFormatSymbols getDecimalFormatSymbols()
      Java 9 changed how format symbols are searched, which causes issues for some locales: the symbol returned doesn't match what the user will typically enter from their keyboard. This overrides to the much more common symbol. This method should _always_ be used instead of getting a instance directly. See FB14239

      Also, do not hang on to an instance of dfs if the locale could have changed between uses. Get a new set each time.

      Returns:
      DecimalFormatSymbols for the default locale, with appropriate changes
    • getDecimalFormatSymbols

      public static DecimalFormatSymbols getDecimalFormatSymbols(Locale locale)
      Java 9 changed how format symbols are searched, which causes issues for some locales: the symbol returned doesn't match what the user will typically enter from their keyboard. This overrides to the much more common symbol. This method should _always_ be used instead of getting a instance directly. See FB14239
      Returns:
      DecimalFormatSymbols for the given locale, with appropriate changes
    • getDecimalFormat

      public static DecimalFormat getDecimalFormat(String pattern)
      Java 9 changed how format symbols are searched, which causes issues for some locales: the symbol returned doesn't match what the user will typically enter from their keyboard. This overrides to the much more common symbol. This method should _always_ be used instead of getting a instance directly. See FB14239

      Also, do not hang on to an instance of DecimalFormat if the locale could have changed between uses. Get a new instance each time.

      Parameters:
      pattern - Format pattern
      Returns:
      DecimalFormat with appropriate symbol changes for the default locale. Not null.
    • getDecimalFormat

      public static DecimalFormat getDecimalFormat(String pattern, Locale locale)
      Java 9 changed how format symbols are searched, which causes issues for some locales: the symbol returned doesn't match what the user will typically enter from their keyboard. This overrides to the much more common symbol. This method should _always_ be used instead of getting a instance directly. See FB14239

      Also, do not hang on to an instance of DecimalFormat if the locale could have changed between uses. Get a new instance each time.

      Parameters:
      pattern - Format pattern
      locale - Locale for formatting
      Returns:
      DecimalFormat with appropriate symbol changes for the given locale. Not null.
    • getIntegerInstance

      public static DecimalFormat getIntegerInstance(Locale locale)
    • getCurrencyInstance

      public static DecimalFormat getCurrencyInstance(Locale locale)
    • getNumberInstance

      public static DecimalFormat getNumberInstance(Locale locale)
    • getPercentInstance

      public static DecimalFormat getPercentInstance(Locale locale)
    • isValidEmailFormat

      public static boolean isValidEmailFormat(String email)