Package org.apache.catalina.util
Class Strftime
- java.lang.Object
-
- org.apache.catalina.util.Strftime
-
public class Strftime extends java.lang.ObjectConverts dates to strings using the same format specifiers as strftime Notes:- This does not mimic strftime perfectly. Certain strftime commands, are not supported, and will convert as if they were literals.
- Certain complicated commands, like those dealing with the week of the year probably don't have exactly the same behavior as strftime.
- These limitations are due to use SimpleDateTime. If the conversion was done manually, all these limitations could be eliminated.
- The interface looks like a subset of DateFormat. Maybe someday someone will make this class extend DateFormat.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.text.SimpleDateFormatsimpleDateFormatThe underlying SimpleDateFormat instance used for date formatting.protected static java.util.PropertiestranslateMapping of strftime format specifiers to SimpleDateFormat equivalents.
-
Constructor Summary
Constructors Constructor Description Strftime(java.lang.String origFormat, java.util.Locale locale)Create an instance of this date formatting class
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.StringconvertDateFormat(java.lang.String pattern)Search the provided pattern and get the C standard Date/Time formatting rules and convert them to the Java equivalent.java.lang.Stringformat(java.util.Date date)Format the date according to the strftime-style string given in the constructor.java.util.TimeZonegetTimeZone()Get the timezone used for formatting conversionsprotected java.lang.Stringquote(java.lang.String str, boolean insideQuotes)Quotes a string literal for use in a SimpleDateFormat pattern if it is not already inside quotes.voidsetTimeZone(java.util.TimeZone timeZone)Change the timezone used to format datesprotected booleantranslateCommand(java.lang.StringBuilder buf, java.lang.String pattern, int index, boolean oldInside)Try to get the Java Date/Time formatting associated with the C standard provided.
-
-
-
Method Detail
-
format
public java.lang.String format(java.util.Date date)
Format the date according to the strftime-style string given in the constructor.- Parameters:
date- the date to format- Returns:
- the formatted date
-
getTimeZone
public java.util.TimeZone getTimeZone()
Get the timezone used for formatting conversions- Returns:
- the timezone
-
setTimeZone
public void setTimeZone(java.util.TimeZone timeZone)
Change the timezone used to format dates- Parameters:
timeZone- The new time zone- See Also:
DateFormat.setTimeZone(java.util.TimeZone)
-
convertDateFormat
protected java.lang.String convertDateFormat(java.lang.String pattern)
Search the provided pattern and get the C standard Date/Time formatting rules and convert them to the Java equivalent.- Parameters:
pattern- The pattern to search- Returns:
- The modified pattern
-
quote
protected java.lang.String quote(java.lang.String str, boolean insideQuotes)Quotes a string literal for use in a SimpleDateFormat pattern if it is not already inside quotes.- Parameters:
str- the string to quoteinsideQuotes- whether the current position is inside quotes- Returns:
- the quoted string
-
translateCommand
protected boolean translateCommand(java.lang.StringBuilder buf, java.lang.String pattern, int index, boolean oldInside)Try to get the Java Date/Time formatting associated with the C standard provided.- Parameters:
buf- The bufferpattern- The date/time patternindex- The char indexoldInside- Flag value- Returns:
- True if new is inside buffer
-
-