Package ucar.nc2.units
Class TimeDuration
- java.lang.Object
-
- ucar.nc2.units.TimeDuration
-
public class TimeDuration extends Object
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
Constructors Constructor Description TimeDuration(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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Date
add(Date d)
boolean
equals(Object o)
TimeDurations with same value in seconds are equalsString
getText()
Get the String textTimeUnit
getTimeUnit()
Get the corresponding time unitdouble
getValue()
Get the duration in natural units, ie units of getTimeUnit()double
getValue(String unit)
double
getValue(TimeUnit want)
Get the time duration in a specified unit of time.double
getValueInSeconds()
Get the duration in secondsint
hashCode()
Override to be consistent with equalsboolean
isBlank()
If this is a blank stringstatic TimeDuration
parseW3CDuration(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.void
setValueInSeconds(double secs)
Set the duration in secondsString
toString()
String representation
-
-
-
Constructor Detail
-
TimeDuration
public TimeDuration(TimeDuration src)
Copy constructor.- Parameters:
src
- copy this
-
TimeDuration
public TimeDuration(TimeUnit timeUnit)
Construct from a TimeUnit.- Parameters:
timeUnit
- copy this
-
TimeDuration
public TimeDuration(String text) throws ParseException
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 Detail
-
parseW3CDuration
public static TimeDuration parseW3CDuration(String text) throws ParseException
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
public double getValue(TimeUnit want) throws ConversionException
Get the time duration in a specified unit of time.- Parameters:
want
- in these units- Returns:
- the duration in units
- Throws:
ConversionException
- is specified unit is not compatible with time
-
getValue
public double getValue(String unit)
-
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
public TimeUnit getTimeUnit()
Get the corresponding time unit- Returns:
- the corresponding time unit
-
getText
public String getText()
Get the String text- Returns:
- the text
-
toString
public String toString()
String representation
-
hashCode
public int hashCode()
Override to be consistent with equals
-
equals
public boolean equals(Object o)
TimeDurations with same value in seconds are equals
-
-