Class DateFormatCache
java.lang.Object
org.apache.juli.DateFormatCache
Cache structure for SimpleDateFormat formatted timestamps based on seconds.
Millisecond formatting using S is not supported. You should add the millisecond information after getting back the second formatting.
The cache consists of entries for a consecutive range of seconds. The length of the range is configurable. It is implemented based on a cyclic buffer. New entries shift the range.
The cache is not thread safe. It can be used without synchronization via thread local instances, or with synchronization as a global cache.
The cache can be created with a parent cache to build a cache hierarchy. Access to the parent cache is thread safe.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final charPattern character used to replace 'S' (milliseconds) in format strings to make timestamps cacheable. -
Constructor Summary
ConstructorsConstructorDescriptionDateFormatCache(int size, String format, DateFormatCache parent) Create a new DateFormatCache. -
Method Summary
Modifier and TypeMethodDescriptiongetFormat(long time) Get the formatted timestamp for the given time.Get the time format string used by this cache.protected static StringtidyFormat(String format) Replace the millisecond formatting character 'S' by some dummy characters in order to make the resulting formatted time stamps cacheable.
-
Field Details
-
MSEC_PATTERN
public static final char MSEC_PATTERNPattern character used to replace 'S' (milliseconds) in format strings to make timestamps cacheable.- See Also:
-
-
Constructor Details
-
DateFormatCache
Create a new DateFormatCache.- Parameters:
size- The number of cached entriesformat- The timestamp format stringparent- The parent cache for building a cache hierarchy
-
-
Method Details
-
tidyFormat
Replace the millisecond formatting character 'S' by some dummy characters in order to make the resulting formatted time stamps cacheable. Our consumer might choose to replace the dummy chars with the actual milliseconds because that's relatively cheap.- Parameters:
format- the format- Returns:
- the replacement format
-
getFormat
Get the formatted timestamp for the given time.- Parameters:
time- The time in milliseconds- Returns:
- the formatted timestamp string
-
getTimeFormat
Get the time format string used by this cache.- Returns:
- the time format string
-