Strftime (Apache Tomcat 9.0.68 API Documentation)

Package org.apache.catalina.util

## Class Strftime

- java.lang.Object
- - org.apache.catalina.util.Strftime

-     public class Strftime
      extends java.lang.Object

  Converts dates to strings using the same format specifiers as strftime Note: 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.
  Author:
    Bip Thelin, Dan Sandberg

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected java.text.SimpleDateFormat` | `simpleDateFormat` |
    `protected static java.util.Properties` | `translate` |

  - ### 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.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.
    `java.lang.String` | `format​(java.util.Date date)` | Format the date according to the strftime-style string given in the constructor.
    `java.util.TimeZone` | `getTimeZone()` | Get the timezone used for formatting conversions
    `protected java.lang.String` | `quote​(java.lang.String str, boolean insideQuotes)` |
    `void` | `setTimeZone​(java.util.TimeZone timeZone)` | Change the timezone used to format dates
    `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.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### translate

          protected static final java.util.Properties translate

    - #### simpleDateFormat

          protected final java.text.SimpleDateFormat simpleDateFormat

  - ### Constructor Detail

    - #### Strftime

          public Strftime​(java.lang.String origFormat,
                          java.util.Locale locale)

      Create an instance of this date formatting class
      Parameters:
        `origFormat` - the strftime-style formatting string
        `locale` - the locale to use for locale-specific conversions

  - ### 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)

    - #### 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 buffer
        `pattern` - The date/time pattern
        `index` - The char index
        `oldInside` - Flag value
      Returns:
        True if new is inside buffer