Class FixedDateFormat

java.lang.Object
org.apache.logging.log4j.core.util.datetime.FixedDateFormat

@ProviderType public class FixedDateFormat extends Object
Custom time formatter that trades flexibility for performance. This formatter only supports the date patterns defined in FixedDateFormat.FixedFormat. For any other date patterns use FastDateFormat.

Related benchmarks: /log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/TimeFormatBenchmark.java and /log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadsafeDateFormatBenchmark.java

  • Method Details

    • createIfSupported

      public static FixedDateFormat createIfSupported(String... options)
    • create

      public static FixedDateFormat create(FixedDateFormat.FixedFormat format)
      Returns a new FixedDateFormat object for the specified FixedFormat and a TimeZone.getDefault() TimeZone.
      Parameters:
      format - the format to use
      Returns:
      a new FixedDateFormat object
    • create

      public static FixedDateFormat create(FixedDateFormat.FixedFormat format, TimeZone tz)
      Returns a new FixedDateFormat object for the specified FixedFormat and TimeZone.
      Parameters:
      format - the format to use
      tz - the time zone to use
      Returns:
      a new FixedDateFormat object
    • getFormat

      public String getFormat()
      Returns the full pattern of the selected fixed format.
      Returns:
      the full date-time pattern
    • getLength

      public final int getLength()
      Returns the length of the resulting formatted date and time strings.
      Returns:
      the length of the resulting formatted date and time strings
    • getTimeZone

      public TimeZone getTimeZone()
      Returns the time zone.
      Returns:
      the time zone
    • millisSinceMidnight

      public long millisSinceMidnight(long currentTime)

      Returns the number of milliseconds since midnight in the time zone that this FixedDateFormat was constructed with for the specified currentTime.

      As a side effect, this method updates the cached formatted date and the cached date demarcation timestamps when the specified current time is outside the previously set demarcation timestamps for the start or end of the current day.

      Parameters:
      currentTime - the current time in millis since the epoch
      Returns:
      the number of milliseconds since midnight for the specified time
    • formatInstant

      public String formatInstant(Instant instant)
    • formatInstant

      public int formatInstant(Instant instant, char[] buffer, int startPos)
    • format

      public String format(long epochMillis)
    • format

      public int format(long epochMillis, char[] buffer, int startPos)
    • isEquivalent

      public boolean isEquivalent(long oldEpochSecond, int oldNanoOfSecond, long epochSecond, int nanoOfSecond)
      Returns true if the old and new date values will result in the same formatted output, false if results may differ.