@Immutable public class CalendarDateUnit extends Object
UNIT since [-]Y[Y[Y[Y]]]-MM-DD[(T| )hh[:mm[:ss[.sss*]]][ [+|-]hh[[:]mm]]] UNIT = "msecs" | "msec" | "seconds" | "second" | "secs" | "sec" | "s" | "minutes" | "minute" | "mins" | "min" | "hours" | "hour" | "hrs" | "hr" | "h" | "days" | "day" | "d""months since base_date by calendar field" "years since base_date by calendar field" bob simon's proposal: "calendar_month since base_date" "calendar_year since base_date" * only integer values are allowed (?) jon blowers comment: In your view would the solution to add "by calendar field" to the existing udunits string be acceptable? It’s backward-compatible with the current interpretation and adds clarification for the cases in which we *do* want to do calendar-field arithmetic (instead of adding fixed intervals). There’s an alternative proposition, in which the new units of calendar_month and calendar_year are added, with the same semantic effect. (However, personally I like the "by calendar field" solution since it allows other fields to vary between calendars, e.g. because of leap-seconds.)
Modifier and Type | Field and Description |
---|---|
static String |
udunitPatternString |
Modifier and Type | Method and Description |
---|---|
CalendarDate |
getBaseCalendarDate() |
Calendar |
getCalendar() |
CalendarPeriod |
getTimeUnit() |
boolean |
isCalendarField() |
static void |
main(String[] args) |
CalendarDate |
makeCalendarDate(double value) |
CalendarDate |
makeCalendarDate(int value) |
static CalendarDateUnit |
of(String calendarName,
String udunitString)
Create a CalendarDateUnit from a calendar name and a udunit string = "unit since calendarDate"
|
String |
toString() |
static CalendarDateUnit |
withCalendar(Calendar calt,
String udunitString)
Create a CalendarDateUnit from a calendar and a udunit string = "unit since calendarDate"
|
public static final String udunitPatternString
public static CalendarDateUnit of(String calendarName, String udunitString)
calendarName
- must match a calendar enum, or one of its aliases, see ucar.nc2.time.Calendar.get()udunitString
- "unit since calendarDate"IllegalArgumentException
- if udunitString is not paresablepublic static CalendarDateUnit withCalendar(Calendar calt, String udunitString)
calt
- use this Calendar, or null for default calendarudunitString
- "unit since calendarDate"IllegalArgumentException
- if udunitString is not paresablepublic CalendarDate makeCalendarDate(double value)
public CalendarDate makeCalendarDate(int value)
public CalendarDate getBaseCalendarDate()
public CalendarPeriod getTimeUnit()
public Calendar getCalendar()
public boolean isCalendarField()
public static void main(String[] args)
Copyright © 1999–2014 UCAR/Unidata. All rights reserved.