Package ucar.nc2.time

Class CalendarDateFormatter

java.lang.Object
ucar.nc2.time.CalendarDateFormatter

@ThreadSafe public class CalendarDateFormatter extends Object
Threadsafe static routines for date formatting. Replacement for ucar.nc2.units.DateFormatter
Since:
7/9/11
  • Field Details

  • Constructor Details

    • CalendarDateFormatter

      public CalendarDateFormatter(String pattern)
      Date formatter with specified pattern. NOTE: we are using jodatime patterns right now, but may switch to jsr-310 when thats available in java 8. Not sure whether these patterns will still work then, so use this formatter at the risk of having to change it eventually. OTOH, its likely that the same functionality will be present in jsr-310.

      The pattern syntax is mostly compatible with java.text.SimpleDateFormat - time zone names cannot be parsed and a few more symbols are supported. All ASCII letters are reserved as pattern letters, which are defined as follows:

       Symbol  Meaning                      Presentation  Examples
       ------  -------                      ------------  -------
       G       era                          text          AD
       C       century of era (>=0)         number        20
       Y       year of era (>=0)            year          1996
      
       x       weekyear                     year          1996
       w       week of weekyear             number        27
       e       day of week                  number        2
       E       day of week                  text          Tuesday; Tue
      
       y       year                         year          1996
       D       day of year                  number        189
       M       month of year                month         July; Jul; 07
       d       day of month                 number        10
      
       a       halfday of day               text          PM
       K       hour of halfday (0~11)       number        0
       h       clockhour of halfday (1~12)  number        12
      
       H       hour of day (0~23)           number        0
       k       clockhour of day (1~24)      number        24
       m       minute of hour               number        30
       s       second of minute             number        55
       S       fraction of second           number        978
      
       z       time zone                    text          Pacific Standard Time; PST
       Z       time zone offset/id          zone          -0800; -08:00; America/Los_Angeles
      
       '       escape for text              delimiter
       ''      single quote                 literal       '
       
    • CalendarDateFormatter

      public CalendarDateFormatter(String pattern, CalendarTimeZone tz, Calendar cal)
    • CalendarDateFormatter

      public CalendarDateFormatter(String pattern, CalendarTimeZone tz)
  • Method Details

    • toDateTimeStringISO

      public static String toDateTimeStringISO(CalendarDate cd)
    • toDateTimeStringISO

      public static String toDateTimeStringISO(Date d)
    • toDateTimeStringISO

      public static String toDateTimeStringISO(long millisecs)
    • toDateTimeString

      public static String toDateTimeString(CalendarDate cd)
    • toDateString

      public static String toDateString(Date date)
    • toDateTimeString

      public static String toDateTimeString(Date date)
    • toDateTimeStringPresent

      public static String toDateTimeStringPresent()
    • toDateString

      public static String toDateString(CalendarDate cd)
    • toDateStringPresent

      public static String toDateStringPresent()
    • toTimeUnits

      public static String toTimeUnits(CalendarDate cd)
      udunits formatting
      Parameters:
      cd - the calendar date
      Returns:
      udunits formated date
    • toTimeUnits

      public static String toTimeUnits(Date date)
    • factory

      public static CalendarDateFormatter factory(CalendarPeriod period)
    • parseISODate

      @Deprecated public static Date parseISODate(String iso)
      Deprecated.
      As of 4.3.10 use isoStringToDate(String) instead
      Old version using DateFormatter
      Parameters:
      iso - ISO 8601 date String
      Returns:
      equivilent Date
    • isoStringToCalendarDate

      public static CalendarDate isoStringToCalendarDate(Calendar calt, String iso) throws IllegalArgumentException
      Convert an ISO formatted String to a CalendarDate.
      Parameters:
      calt - calendar, may be null for default calendar (Calendar.getDefault())
      iso - ISO 8601 date String
       possible forms for W3C profile of ISO 8601
            Year:
             YYYY (eg 1997)
          Year and month:
             YYYY-MM (eg 1997-07)
          Complete date:
             YYYY-MM-DD (eg 1997-07-16)
          Complete date plus hours and minutes:
             YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
          Complete date plus hours, minutes and seconds:
             YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
          Complete date plus hours, minutes, seconds and a decimal fraction of a second
             YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)
        
        where:
            YYYY = four-digit year
            MM   = two-digit month (01=January, etc.)
            DD   = two-digit day of month (01 through 31)
            hh   = two digits of hour (00 through 23) (am/pm NOT allowed)
            mm   = two digits of minute (00 through 59)
            ss   = two digits of second (00 through 59)
            s    = one or more digits representing a decimal fraction of a second
            TZD  = time zone designator (Z or +hh:mm or -hh:mm)
        except:
           You may use a space instead of the 'T'
           The year may be preceeded by a '+' (ignored) or a '-' (makes the date BCE)
           The date part uses a '-' delimiter instead of a fixed number of digits for each field
           The time part uses a ':' delimiter instead of a fixed number of digits for each field
              
      Returns:
      CalendarDate using given calendar
      Throws:
      IllegalArgumentException - if the String is not a valid ISO 8601 date
      See Also:
      • "http://www.w3.org/TR/NOTE-datetime"
    • isoStringToDate

      public static Date isoStringToDate(String iso) throws IllegalArgumentException
      Deprecated.
      use isoStringToCalendarDate
      Does not handle non-standard Calendars
      Parameters:
      iso - iso formatted string
      Returns:
      Date
      Throws:
      IllegalArgumentException
    • toString

      public String toString(CalendarDate cd)
    • parse

      public CalendarDate parse(String timeString)