Class 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