Package ucar.nc2.units
Class TimeDuration
java.lang.Object
ucar.nc2.units.TimeDuration
Implements the thredds "duration" XML element type: specifies a length of time.
This is really the same as a ucar.nc2.units.TimeUnit, but it allows xsd:duration syntax as well as udunits syntax.
It also keeps track if the text is empty.
A duration can be one of the following:
- a valid udunits string compatible with "secs"
- an xsd:duration type specified in the following form "PnYnMnDTnHnMnS" where:
- P indicates the period (required)
- nY indicates the number of years
- nM indicates the number of months
- nD indicates the number of days
- T indicates the start of a time section (required if you are going to specify hours, minutes, or seconds)
- nH indicates the number of hours
- nM indicates the number of minutes
- nS indicates the number of seconds
- See Also:
-
- "https://www.unidata.ucar.edu/projects/THREDDS/tech/catalog/InvCatalogSpec.html#durationType"
-
Constructor Summary
ConstructorsConstructorDescriptionTimeDuration(String text) Construct from 1) udunit time unit string, 2) xsd:duration syntax, 3) blank string.TimeDuration(TimeDuration src) Copy constructor.TimeDuration(TimeUnit timeUnit) Construct from a TimeUnit. -
Method Summary
Modifier and TypeMethodDescriptionbooleanTimeDurations with same value in seconds are equalsgetText()Get the String textGet the corresponding time unitdoublegetValue()Get the duration in natural units, ie units of getTimeUnit()doubledoubleGet the time duration in a specified unit of time.doubleGet the duration in secondsinthashCode()Override to be consistent with equalsbooleanisBlank()If this is a blank stringstatic TimeDurationparseW3CDuration(String text) A time span as defined in the W3C XML Schema 1.0 specification: "PnYnMnDTnHnMnS, where nY represents the number of years, nM the number of months, nD the number of days, 'T' is the date/time separator, nH the number of hours, nM the number of minutes and nS the number of seconds.voidsetValueInSeconds(double secs) Set the duration in secondstoString()String representation
-
Constructor Details
-
TimeDuration
Copy constructor.- Parameters:
src- copy this
-
TimeDuration
Construct from a TimeUnit.- Parameters:
timeUnit- copy this
-
TimeDuration
Construct from 1) udunit time unit string, 2) xsd:duration syntax, 3) blank string.- Parameters:
text- parse this text.- Throws:
ParseException- if invalid text.
-
-
Method Details
-
parseW3CDuration
A time span as defined in the W3C XML Schema 1.0 specification: "PnYnMnDTnHnMnS, where nY represents the number of years, nM the number of months, nD the number of days, 'T' is the date/time separator, nH the number of hours, nM the number of minutes and nS the number of seconds. The number of seconds can include decimal digits to arbitrary precision."- Parameters:
text- parse this text, format PnYnMnDTnHnMnS- Returns:
- TimeDuration
- Throws:
ParseException- when text is misformed
-
getValue
public double getValue()Get the duration in natural units, ie units of getTimeUnit()- Returns:
- the duration in natural units
-
getValue
Get the time duration in a specified unit of time.- Parameters:
want- in these units- Returns:
- the duration in units
- Throws:
ucar.units.ConversionException- is specified unit is not compatible with time
-
getValue
-
getValueInSeconds
public double getValueInSeconds()Get the duration in seconds- Returns:
- the duration in seconds
-
setValueInSeconds
public void setValueInSeconds(double secs) Set the duration in seconds- Parameters:
secs- the duration in seconds
-
isBlank
public boolean isBlank()If this is a blank string- Returns:
- true if this is a blank string
-
getTimeUnit
Get the corresponding time unit- Returns:
- the corresponding time unit
-
getText
Get the String text- Returns:
- the text
-
toString
String representation -
hashCode
public int hashCode()Override to be consistent with equals -
equals
TimeDurations with same value in seconds are equals -
add
-