Class FixedDateFormat
java.lang.Object
org.apache.logging.log4j.core.util.datetime.FixedDateFormat
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
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
Enumeration over the supported date/time format patterns.static enum
Fixed time zone formats. -
Method Summary
Modifier and TypeMethodDescriptionstatic FixedDateFormat
create
(FixedDateFormat.FixedFormat format) Returns a newFixedDateFormat
object for the specifiedFixedFormat
and aTimeZone.getDefault()
TimeZone.static FixedDateFormat
create
(FixedDateFormat.FixedFormat format, TimeZone tz) Returns a newFixedDateFormat
object for the specifiedFixedFormat
and TimeZone.static FixedDateFormat
createIfSupported
(String... options) format
(long epochMillis) int
format
(long epochMillis, char[] buffer, int startPos) formatInstant
(Instant instant) int
formatInstant
(Instant instant, char[] buffer, int startPos) Returns the full pattern of the selected fixed format.final int
Returns the length of the resulting formatted date and time strings.Returns the time zone.boolean
isEquivalent
(long oldEpochSecond, int oldNanoOfSecond, long epochSecond, int nanoOfSecond) Returnstrue
if the old and new date values will result in the same formatted output,false
if results may differ.long
millisSinceMidnight
(long currentTime) Returns the number of milliseconds since midnight in the time zone that thisFixedDateFormat
was constructed with for the specified currentTime.
-
Method Details
-
createIfSupported
-
create
Returns a newFixedDateFormat
object for the specifiedFixedFormat
and aTimeZone.getDefault()
TimeZone.- Parameters:
format
- the format to use- Returns:
- a new
FixedDateFormat
object
-
create
Returns a newFixedDateFormat
object for the specifiedFixedFormat
and TimeZone.- Parameters:
format
- the format to usetz
- the time zone to use- Returns:
- a new
FixedDateFormat
object
-
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
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
-
formatInstant
-
format
-
format
public int format(long epochMillis, char[] buffer, int startPos) -
isEquivalent
public boolean isEquivalent(long oldEpochSecond, int oldNanoOfSecond, long epochSecond, int nanoOfSecond) Returnstrue
if the old and new date values will result in the same formatted output,false
if results may differ.
-