gsfc.nssdc.cdf.util
Class Epoch16

java.lang.Object
  extended by gsfc.nssdc.cdf.util.Epoch16
All Implemented Interfaces:
CDFConstants

public class Epoch16
extends java.lang.Object
implements CDFConstants

Example:

 
 // Get the time, down to picoseconds, for Aug 5, 1990 at 5:0:0.0.0.0
 double[] epoch16 = new double[2];
 double ep = Epoch16.compute(1990, 8, 5, 5, 0, 0, 0, 0, 0, 0, epoch16);
 //Get the year, month, day, hour, minutes, seconds, milliseconds,
 //    microseconds, nanaseconds and picoseconds for epoch16
 long times[] = Epoch16.breakdown(epoch16);
 for (int i=0;i<times.length;i++)
     System.out.print(times[i]+" ");
 System.out.println();
 // Printout the epoch in various formats
 System.out.println(Epoch16.encode(epoch16));
 System.out.println(Epoch16.encode1(epoch16));
 System.out.println(Epoch16.encode2(epoch16));
 System.out.println(Epoch16.encode3(epoch16));
 System.out.println(Epoch16.encode4(epoch16));
 // Print out the date using format
 String format = " ,  at :";
 System.out.println(Epoch16.encodex(epoch16,format));
 


Field Summary
 
Fields inherited from interface gsfc.nssdc.cdf.CDFConstants
AHUFF_COMPRESSION, ALPHAOSF1_DECODING, ALPHAOSF1_ENCODING, ALPHAVMSd_DECODING, ALPHAVMSd_ENCODING, ALPHAVMSg_DECODING, ALPHAVMSg_ENCODING, ALPHAVMSi_DECODING, ALPHAVMSi_ENCODING, ATTR_, ATTR_EXISTENCE_, ATTR_EXISTS, ATTR_MAXgENTRY_, ATTR_MAXrENTRY_, ATTR_MAXzENTRY_, ATTR_NAME_, ATTR_NAME_TRUNC, ATTR_NUMBER_, ATTR_NUMgENTRIES_, ATTR_NUMrENTRIES_, ATTR_NUMzENTRIES_, ATTR_SCOPE_, BACKWARD_, BACKWARDFILEoff, BACKWARDFILEon, BAD_ALLOCATE_RECS, BAD_ARGUMENT, BAD_ATTR_NAME, BAD_ATTR_NUM, BAD_BLOCKING_FACTOR, BAD_CACHE_SIZE, BAD_CDF_EXTENSION, BAD_CDF_ID, BAD_CDF_NAME, BAD_CDFSTATUS, BAD_CHECKSUM, BAD_COMPRESSION_PARM, BAD_DATA_TYPE, BAD_DECODING, BAD_DIM_COUNT, BAD_DIM_INDEX, BAD_DIM_INTERVAL, BAD_DIM_SIZE, BAD_ENCODING, BAD_ENTRY_NUM, BAD_FNC_OR_ITEM, BAD_FORMAT, BAD_INITIAL_RECS, BAD_MAJORITY, BAD_MALLOC, BAD_NEGtoPOSfp0_MODE, BAD_NUM_DIMS, BAD_NUM_ELEMS, BAD_NUM_VARS, BAD_READONLY_MODE, BAD_REC_COUNT, BAD_REC_INTERVAL, BAD_REC_NUM, BAD_SCOPE, BAD_SCRATCH_DIR, BAD_SPARSEARRAYS_PARM, BAD_VAR_NAME, BAD_VAR_NUM, BAD_zMODE, CANNOT_ALLOCATE_RECORDS, CANNOT_CHANGE, CANNOT_COMPRESS, CANNOT_COPY, CANNOT_SPARSEARRAYS, CANNOT_SPARSERECORDS, CDF_, CDF_ACCESS_, CDF_ATTR_NAME_LEN, CDF_ATTR_NAME_LEN256, CDF_BYTE, CDF_CACHESIZE_, CDF_CHAR, CDF_CHECKSUM_, CDF_CLOSE_ERROR, CDF_COMPRESSION_, CDF_COPYRIGHT_, CDF_COPYRIGHT_LEN, CDF_CREATE_ERROR, CDF_DECODING_, CDF_DELETE_ERROR, CDF_DOUBLE, CDF_ENCODING_, CDF_EPOCH, CDF_EPOCH16, CDF_EXISTS, CDF_FLOAT, CDF_FORMAT_, CDF_INCREMENT_, CDF_INFO_, CDF_INT1, CDF_INT2, CDF_INT4, CDF_INT8, CDF_INTERNAL_ERROR, CDF_MAJORITY_, CDF_MAX_DIMS, CDF_MAX_PARMS, CDF_MIN_DIMS, CDF_NAME_, CDF_NAME_TRUNC, CDF_NEGtoPOSfp0_MODE_, CDF_NUMATTRS_, CDF_NUMgATTRS_, CDF_NUMrVARS_, CDF_NUMvATTRS_, CDF_NUMzVARS_, CDF_OK, CDF_OPEN_ERROR, CDF_PATHNAME_LEN, CDF_READ_ERROR, CDF_READONLY_MODE_, CDF_REAL4, CDF_REAL8, CDF_RELEASE_, CDF_SAVE_ERROR, CDF_SCRATCHDIR_, CDF_STATUS_, CDF_STATUSTEXT_LEN, CDF_TIME_TT2000, CDF_UCHAR, CDF_UINT1, CDF_UINT2, CDF_UINT4, CDF_VAR_NAME_LEN, CDF_VAR_NAME_LEN256, CDF_VERSION_, CDF_WARN, CDF_WRITE_ERROR, CDF_zMODE_, CDFwithSTATS_, CHECKSUM_, CHECKSUM_ERROR, CHECKSUM_NOT_ALLOWED, CLOSE_, COLUMN_MAJOR, COMPRESS_CACHESIZE_, COMPRESSION_ERROR, CONFIRM_, CORRUPTED_V2_CDF, CORRUPTED_V3_CDF, CREATE_, CURgENTRY_EXISTENCE_, CURrENTRY_EXISTENCE_, CURzENTRY_EXISTENCE_, DATATYPE_MISMATCH, DATATYPE_SIZE_, DECOMPRESSION_ERROR, DECSTATION_DECODING, DECSTATION_ENCODING, DEFAULT_BYTE_PADVALUE, DEFAULT_CHAR_PADVALUE, DEFAULT_DOUBLE_PADVALUE, DEFAULT_EPOCH_PADVALUE, DEFAULT_FLOAT_PADVALUE, DEFAULT_INT1_PADVALUE, DEFAULT_INT2_PADVALUE, DEFAULT_INT4_PADVALUE, DEFAULT_INT8_PADVALUE, DEFAULT_REAL4_PADVALUE, DEFAULT_REAL8_PADVALUE, DEFAULT_TT2000_PADVALUE, DEFAULT_UCHAR_PADVALUE, DEFAULT_UINT1_PADVALUE, DEFAULT_UINT2_PADVALUE, DEFAULT_UINT4_PADVALUE, DELETE_, DID_NOT_COMPRESS, DUMMY_TT2000_VALUE, EMPTY_COMPRESSED_CDF, END_OF_VAR, EPOCH_STRING_LEN, EPOCH_STRING_LEN_EXTEND, EPOCH1_STRING_LEN, EPOCH1_STRING_LEN_EXTEND, EPOCH2_STRING_LEN, EPOCH2_STRING_LEN_EXTEND, EPOCH3_STRING_LEN, EPOCH3_STRING_LEN_EXTEND, EPOCH4_STRING_LEN, EPOCH4_STRING_LEN_EXTEND, EPOCHx_FORMAT_MAX, EPOCHx_STRING_MAX, FORCED_PARAMETER, gENTRY_, gENTRY_DATA_, gENTRY_DATASPEC_, gENTRY_DATATYPE_, gENTRY_EXISTENCE_, gENTRY_NUMELEMS_, GET_, GETCDFCHECKSUM_, GETCDFFILEBACKWARD_, GETCDFVALIDATE_, GETLEAPSECONDSENVVAR_, GLOBAL_SCOPE, GZIP_COMPRESSION, HOST_DECODING, HOST_ENCODING, HP_DECODING, HP_ENCODING, HUFF_COMPRESSION, IBM_PC_OVERFLOW, IBMPC_DECODING, IBMPC_ENCODING, IBMRS_DECODING, IBMRS_ENCODING, ILLEGAL_EPOCH_FIELD, ILLEGAL_EPOCH_VALUE, ILLEGAL_FOR_SCOPE, ILLEGAL_IN_zMODE, ILLEGAL_ON_V1_CDF, ILLEGAL_TT2000_VALUE, IS_A_NETCDF, LIB_COPYRIGHT_, LIB_INCREMENT_, LIB_RELEASE_, LIB_subINCREMENT_, LIB_VERSION_, MAC_DECODING, MAC_ENCODING, MD5_CHECKSUM, MULTI_FILE, MULTI_FILE_FORMAT, NA_FOR_VARIABLE, NEGATIVE_FP_ZERO, NEGtoPOSfp0off, NEGtoPOSfp0on, NETWORK_DECODING, NETWORK_ENCODING, NeXT_DECODING, NeXT_ENCODING, NO_ATTR_SELECTED, NO_CDF_SELECTED, NO_CHECKSUM, NO_COMPRESSION, NO_DELETE_ACCESS, NO_ENTRY_SELECTED, NO_MORE_ACCESS, NO_PADVALUE_SPECIFIED, NO_SPARSEARRAYS, NO_SPARSERECORDS, NO_STATUS_SELECTED, NO_SUCH_ATTR, NO_SUCH_CDF, NO_SUCH_ENTRY, NO_SUCH_RECORD, NO_SUCH_VAR, NO_VAR_SELECTED, NO_VARS_IN_CDF, NO_WRITE_ACCESS, NONE_CHECKSUM, NOT_A_CDF, NOT_A_CDF_OR_NOT_SUPPORTED, NOVARY, NULL_, OPEN_, OPTIMAL_ENCODING_TREES, OTHER_CHECKSUM, PAD_SPARSERECORDS, PPC_DECODING, PPC_ENCODING, PRECEEDING_RECORDS_ALLOCATED, PREV_SPARSERECORDS, PUT_, READ_ONLY_DISTRIBUTION, READ_ONLY_MODE, READONLYoff, READONLYon, rENTRY_, rENTRY_DATA_, rENTRY_DATASPEC_, rENTRY_DATATYPE_, rENTRY_EXISTENCE_, rENTRY_NAME_, rENTRY_NUMELEMS_, RLE_COMPRESSION, RLE_OF_ZEROs, ROW_MAJOR, rVAR_, rVAR_ALLOCATEBLOCK_, rVAR_ALLOCATEDFROM_, rVAR_ALLOCATEDTO_, rVAR_ALLOCATERECS_, rVAR_BLOCKINGFACTOR_, rVAR_CACHESIZE_, rVAR_COMPRESSION_, rVAR_DATA_, rVAR_DATASPEC_, rVAR_DATATYPE_, rVAR_DIMVARYS_, rVAR_EXISTENCE_, rVAR_HYPERDATA_, rVAR_INITIALRECS_, rVAR_MAXallocREC_, rVAR_MAXREC_, rVAR_NAME_, rVAR_nINDEXENTRIES_, rVAR_nINDEXLEVELS_, rVAR_nINDEXRECORDS_, rVAR_NUMallocRECS_, rVAR_NUMBER_, rVAR_NUMELEMS_, rVAR_NUMRECS_, rVAR_PADVALUE_, rVAR_RECORDS_, rVAR_RECVARY_, rVAR_RESERVEPERCENT_, rVAR_SEQDATA_, rVAR_SEQPOS_, rVAR_SPARSEARRAYS_, rVAR_SPARSERECORDS_, rVARs_CACHESIZE_, rVARs_DIMCOUNTS_, rVARs_DIMINDICES_, rVARs_DIMINTERVALS_, rVARs_DIMSIZES_, rVARs_MAXREC_, rVARs_NUMDIMS_, rVARs_RECCOUNT_, rVARs_RECDATA_, rVARs_RECINTERVAL_, rVARs_RECNUMBER_, SAVE_, SCRATCH_CREATE_ERROR, SCRATCH_DELETE_ERROR, SCRATCH_READ_ERROR, SCRATCH_WRITE_ERROR, SELECT_, SGi_DECODING, SGi_ENCODING, SINGLE_FILE, SINGLE_FILE_FORMAT, SOME_ALREADY_ALLOCATED, STAGE_CACHESIZE_, STATUS_TEXT_, SUN_DECODING, SUN_ENCODING, TOO_MANY_PARMS, TOO_MANY_VARS, TT2000_0_STRING_LEN, TT2000_1_STRING_LEN, TT2000_2_STRING_LEN, TT2000_3_STRING_LEN, TT2000_TIME_ERROR, UNKNOWN_COMPRESSION, UNKNOWN_SPARSENESS, UNSUPPORTED_OPERATION, VALIDATE_, VALIDATEFILEoff, VALIDATEFILEon, VAR_ALREADY_CLOSED, VAR_CLOSE_ERROR, VAR_CREATE_ERROR, VAR_DELETE_ERROR, VAR_EXISTS, VAR_NAME_TRUNC, VAR_OPEN_ERROR, VAR_READ_ERROR, VAR_SAVE_ERROR, VAR_WRITE_ERROR, VARIABLE_SCOPE, VARY, VAX_DECODING, VAX_ENCODING, VIRTUAL_RECORD_DATA, zENTRY_, zENTRY_DATA_, zENTRY_DATASPEC_, zENTRY_DATATYPE_, zENTRY_EXISTENCE_, zENTRY_NAME_, zENTRY_NUMELEMS_, zMODEoff, zMODEon1, zMODEon2, zVAR_, zVAR_ALLOCATEBLOCK_, zVAR_ALLOCATEDFROM_, zVAR_ALLOCATEDTO_, zVAR_ALLOCATERECS_, zVAR_BLOCKINGFACTOR_, zVAR_CACHESIZE_, zVAR_COMPRESSION_, zVAR_DATA_, zVAR_DATASPEC_, zVAR_DATATYPE_, zVAR_DIMCOUNTS_, zVAR_DIMINDICES_, zVAR_DIMINTERVALS_, zVAR_DIMSIZES_, zVAR_DIMVARYS_, zVAR_EXISTENCE_, zVAR_HYPERDATA_, zVAR_INITIALRECS_, zVAR_MAXallocREC_, zVAR_MAXREC_, zVAR_NAME_, zVAR_nINDEXENTRIES_, zVAR_nINDEXLEVELS_, zVAR_nINDEXRECORDS_, zVAR_NUMallocRECS_, zVAR_NUMBER_, zVAR_NUMDIMS_, zVAR_NUMELEMS_, zVAR_NUMRECS_, zVAR_PADVALUE_, zVAR_RECCOUNT_, zVAR_RECINTERVAL_, zVAR_RECNUMBER_, zVAR_RECORDS_, zVAR_RECVARY_, zVAR_RESERVEPERCENT_, zVAR_SEQDATA_, zVAR_SEQPOS_, zVAR_SPARSEARRAYS_, zVAR_SPARSERECORDS_, zVARs_CACHESIZE_, zVARs_MAXREC_, zVARs_RECDATA_, zVARs_RECNUMBER_
 
Constructor Summary
Epoch16()
           
 
Method Summary
static long[] breakdown(java.lang.Object epoch)
          Breaks an EPOCH16 value down into its component parts.
static double compute(long year, long month, long day, long hour, long minute, long second, long msec, long usec, long nsec, long psec, java.lang.Object epoch)
          Computes an EPOCH16 value based on its component parts.
static java.lang.String encode(java.lang.Object epoch)
          Converts an EPOCH16 value into a readable date/time string.
static java.lang.String encode1(java.lang.Object epoch)
          Converts an EPOCH16 value into a readable date/time string.
static java.lang.String encode2(java.lang.Object epoch)
          Converts an EPOCH16 value into a readable date/time string.
static java.lang.String encode3(java.lang.Object epoch)
          Converts an EPOCH16 value into a readable date/time string.
static java.lang.String encode4(java.lang.Object epoch)
          Converts an EPOCH16 value into a readable date/time, ISO8601 string.
static java.lang.String encodex(java.lang.Object epoch, java.lang.String formatString)
          Converts an EPOCH16 value into a readable date/time string using the specified format.
static java.lang.Object parse(java.lang.String inString)
          This function parses an input date/time string and returns an EPOCH16 value.
static java.lang.Object parse1(java.lang.String inString)
          This function parses an input date/time string and returns an EPOCH16 value.
static java.lang.Object parse2(java.lang.String inString)
          This function parses an input date/time string and returns an EPOCH16 value.
static java.lang.Object parse3(java.lang.String inString)
          This function parses an input date/time string and returns an EPOCH16 value.
static java.lang.Object parse4(java.lang.String inString)
          This function parses an input date/time, ISO8601 string and returns an EPOCH16 value.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Epoch16

public Epoch16()
Method Detail

parse

public static java.lang.Object parse(java.lang.String inString)
                              throws CDFException
This function parses an input date/time string and returns an EPOCH16 value. The format must be exactly as shown below. Month abbreviations may be in any case and are always the first three letters of the month.
 Format:          dd-mmm-yyyy hh:mm:ss.ccc.mmm.nnn.ppp
 Examples:         1-Apr-1990 03:05:02.000.000.000.000
                  10-Oct-1993 23:45:49.999.999.999.999
 
The expected format is the same as that produced by encode.

Parameters:
inString - the epoch in string representation
Returns:
the value of the epoch represented by inString
Throws:
CDFException - if a bad epoch value is passed in inString

parse1

public static java.lang.Object parse1(java.lang.String inString)
                               throws CDFException
This function parses an input date/time string and returns an EPOCH16 value. The format must be exactly as shown below. Note that if there are less than 15 digits after the decimal point, zeros (0's) are assumed for the missing digits.
 Format:            yyyymmdd.ttttttttttttttt
 Examples:          19950508.000000000000000
                    19671231.58      (== 19671213.580000000000000)
 
The expected format is the same as that produced by encode1.

Parameters:
inString - the epoch in string representation
Returns:
the value of the epoch represented by inString
Throws:
CDFException - if a bad epoch value is passed in inString

parse2

public static java.lang.Object parse2(java.lang.String inString)
                               throws CDFException
This function parses an input date/time string and returns an EPOCH16 value. The format must be exactly as shown below.
 Format:           yyyymmddhhmmss
 Examples:         19950508000000
                   19671231235959
 
The expected format is the same as that produced by encode2.

Parameters:
inString - the epoch in string representation
Returns:
the value of the epoch represented by inString
Throws:
CDFException - if a bad epoch value is passed in inString

parse3

public static java.lang.Object parse3(java.lang.String inString)
                               throws CDFException
This function parses an input date/time string and returns an EPOCH16 value. The format must be exactly as shown below.
 Format:            yyyy-mm-ddThh:mm:ss.ccc.mmm.nnn.pppZ
 Examples:          1990-04-01T03:05:02.000.000.000.000Z
                    1993-10-10T23:45:49.999.999.999.999Z
 
The expected format is the same as that produced by encode3.

Parameters:
inString - the epoch in string representation
Returns:
the value of the epoch represented by inString
Throws:
CDFException - if a bad epoch value is passed in inString

parse4

public static java.lang.Object parse4(java.lang.String inString)
                               throws CDFException
This function parses an input date/time, ISO8601 string and returns an EPOCH16 value. The format must be exactly as shown below.
 Format:            yyyy-mm-ddThh:mm:ss.cccmmmnnnppp
 Examples:          1990-04-01T03:05:02.000000000000
                    1993-10-10T23:45:49.999999999999
 
The expected format is the same as that produced by encode3.

Parameters:
inString - the epoch in string representation
Returns:
the value of the epoch represented by inString
Throws:
CDFException - if a bad epoch value is passed in inString

encode

public static java.lang.String encode(java.lang.Object epoch)
Converts an EPOCH16 value into a readable date/time string.
 Format:            dd-mmm-yyyy hh:mm:ss.ccc.mmm.nnn.ppp
 Examples:          01-Apr-1990 03:05:02.000.000.000.000
                    10-Oct-1993 23:45:49.999.999.999.999
 
This format is the same as that expected by parse.

Parameters:
epoch - the epoch value
Returns:
A string representation of the epoch

encode1

public static java.lang.String encode1(java.lang.Object epoch)
Converts an EPOCH16 value into a readable date/time string.
 Format:            yyyymmdd.ttttttttttttttt
 Examples:          19900401.365889312341234
                    19611231.000000000000000
 
This format is the same as that expected by parse1.

Parameters:
epoch - the epoch value
Returns:
A string representation of the epoch

encode2

public static java.lang.String encode2(java.lang.Object epoch)
Converts an EPOCH16 value into a readable date/time string.
 Format:          yyyymmddhhmmss
 Examples:        19900401235959
                  19611231000000
 
This format is the same as that expected by parse2.

Parameters:
epoch - the epoch value
Returns:
A string representation of the epoch

encode3

public static java.lang.String encode3(java.lang.Object epoch)
Converts an EPOCH16 value into a readable date/time string.
 Format:            yyyy-mm-ddThh:mm:ss.ccc.mmm.nnn.pppZ
 Examples:          1990-04-01T03:05:02.000.000.000.000Z
                    1993-10-10T23:45:49.999.999.999.999Z
 
This format is the same as that expected by parse3.

Parameters:
epoch - the epoch value
Returns:
A string representation of the epoch

encode4

public static java.lang.String encode4(java.lang.Object epoch)
Converts an EPOCH16 value into a readable date/time, ISO8601 string.
 Format:            yyyy-mm-ddThh:mm:ss.cccmmmnnnppp
 Examples:          1990-04-01T03:05:02.000000000000
                    1993-10-10T23:45:49.999999999999
 
This format is the same as that expected by parse4.

Parameters:
epoch - the epoch value
Returns:
A string representation of the epoch

encodex

public static java.lang.String encodex(java.lang.Object epoch,
                                       java.lang.String formatString)
Converts an EPOCH16 value into a readable date/time string using the specified format. See the C Reference Manual section 8.7 for details

Parameters:
epoch - the epoch value
formatString - a string representing the desired format of the epoch
Returns:
A string representation of the epoch according to formatString

compute

public static double compute(long year,
                             long month,
                             long day,
                             long hour,
                             long minute,
                             long second,
                             long msec,
                             long usec,
                             long nsec,
                             long psec,
                             java.lang.Object epoch)
                      throws CDFException
Computes an EPOCH16 value based on its component parts.

Parameters:
year - the year
month - the month
day - the day
hour - the hour
minute - the minute
second - the second
msec - the milliseconds
usec - the microseconds
nsec - the nanoseconds
psec - the picoseconds
Returns:
the epoch value
Throws:
CDFException - an ILLEGAL_EPOCH_FIELD if an illegal component value is detected.

breakdown

public static long[] breakdown(java.lang.Object epoch)
Breaks an EPOCH16 value down into its component parts.

Parameters:
epoch - the epoch value to break down
Returns:
an array containing the epoch parts:
IndexPart
0year
1month
2day
3hour
4minute
5second
6msec
7usec
8nsec
9psec