ucar.nc2.units
Class DateUnit

java.lang.Object
  extended by ucar.nc2.units.DateUnit

public class DateUnit
extends Object

Handles udunits dates, represented as "n units of time since reference date" eg "1203 days since 1970-01-01 00:00:00".

This is a wrapper around ucar.units package. It tracks the value, the base time unit, and the date origin seperately.

Author:
caron

Constructor Summary
DateUnit(double value, String timeUnitString, Date since)
          Constructor that takes a value, timeUnitString, and a Date since
DateUnit(String text)
          Constructor.
 
Method Summary
 Date getDate()
          Get the equivilent java.util.Date.
 Date getDateOrigin()
          Get the origin Date.
static Date getStandardDate(String text)
          Create a java.util.Date from this udunits String.
static Date getStandardOrISO(String text)
          Create a java.util.Date from a udunit or ISO String.
 TimeUnit getTimeUnit()
          For udunit dates, get the time unit.
 String getTimeUnitString()
          For udunit dates, get the time unit only, as a String, eg "secs" or "days"
 String getUnitsString()
          The udunits string, but no value, ie its a base unit.
static DateUnit getUnixDateUnit()
           
static void main(String[] args)
           
 Date makeDate(double val)
          Create a Date from this base unit and the given value.
 String makeStandardDateString(double value)
          Make a standard GMT string representation from this unit and given value.
 double makeValue(Date date)
          Create the equivilent value from this base unit and the given Date.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DateUnit

public DateUnit(String text)
         throws Exception
Constructor.

Parameters:
text - udunits String, eg 3 secs since 1991-01-01T03:12
Throws:
Exception - if malformed String.

DateUnit

public DateUnit(double value,
                String timeUnitString,
                Date since)
         throws Exception
Constructor that takes a value, timeUnitString, and a Date since

Parameters:
value - number of time units
timeUnitString - eg "secs"
since - date since, eg "secs since 1970-01-01T00:00:00Z"
Throws:
Exception - if not valid time unit.
Method Detail

getStandardDate

public static Date getStandardDate(String text)
Create a java.util.Date from this udunits String.

Parameters:
text - a udunit string.
[number] (units) since [-]Y[Y[Y[Y]]]-MM-DD[(T| )hh[:mm[:ss[.sss*]]][ [+|-]hh[[:]mm]]]
Returns:
Date or null if not date unit.

getStandardOrISO

public static Date getStandardOrISO(String text)
Create a java.util.Date from a udunit or ISO String.

Parameters:
text - a udunit or ISO string.
Returns:
Date or null if not date unit.
See Also:
getStandardDate(java.lang.String), DateFormatter.getISODate(java.lang.String)

getUnixDateUnit

public static DateUnit getUnixDateUnit()

getDateOrigin

public Date getDateOrigin()
Get the origin Date.

Returns:
Date or null if not a time unit.

getTimeUnitString

public String getTimeUnitString()
For udunit dates, get the time unit only, as a String, eg "secs" or "days"

Returns:
time unit as a string

getTimeUnit

public TimeUnit getTimeUnit()
For udunit dates, get the time unit.

Returns:
time unit

getDate

public Date getDate()
Get the equivilent java.util.Date.

Returns:
Date or null if failure

makeDate

public Date makeDate(double val)
Create a Date from this base unit and the given value.

Parameters:
val - value in the units of this base unit, eg sec since base date
Returns:
Date .

makeValue

public double makeValue(Date date)
Create the equivilent value from this base unit and the given Date. Inverse of makeDate.

Parameters:
date - to convert.
Returns:
value in units of this base unit.

makeStandardDateString

public String makeStandardDateString(double value)
Make a standard GMT string representation from this unit and given value.

Parameters:
value - of time in these units.
Returns:
String or null if not time unit.

toString

public String toString()
Overrides:
toString in class Object

getUnitsString

public String getUnitsString()
The udunits string, but no value, ie its a base unit.

Returns:
the udunits base string

main

public static void main(String[] args)
                 throws Exception
Throws:
Exception


Copyright © 1999-2011 UCAR/Unidata. All Rights Reserved.