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 Summary
Fields Modifier and Type Field Description static String
isodatePatternString
-
Constructor Summary
Constructors Constructor Description CalendarDateFormatter(String pattern)
Date formatter with specified pattern.CalendarDateFormatter(String pattern, CalendarTimeZone tz)
CalendarDateFormatter(String pattern, CalendarTimeZone tz, Calendar cal)
-
Method Summary
-
-
-
Field Detail
-
isodatePatternString
public static final String isodatePatternString
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
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 Detail
-
toDateTimeStringISO
public static String toDateTimeStringISO(CalendarDate cd)
-
toDateTimeStringISO
public static String toDateTimeStringISO(long millisecs)
-
toDateTimeString
public static String toDateTimeString(CalendarDate cd)
-
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
-
factory
public static CalendarDateFormatter factory(CalendarPeriod period)
-
parseISODate
@Deprecated public static Date parseISODate(String iso)
Deprecated.As of 4.3.10 useisoStringToDate(String)
insteadOld 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 Stringpossible 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 isoStringToCalendarDateDoes 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)
-
-