Class Strftime


  • public class Strftime
    extends java.lang.Object
    Converts 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.
    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