org.apache.commons.ssl.asn1

## Class DERGeneralizedTime

- java.lang.Object
- - org.apache.commons.ssl.asn1.ASN1Encodable
  - - org.apache.commons.ssl.asn1.DERObject
    - - org.apache.commons.ssl.asn1.ASN1Object
      - - org.apache.commons.ssl.asn1.DERGeneralizedTime

All Implemented Interfaces:
  DEREncodable, DERTags

    public class DERGeneralizedTime
    extends ASN1Object

Generalized time object.

### Field Summary

Fields
`(package private) java.lang.String` `time`

### Fields inherited from class org.apache.commons.ssl.asn1.ASN1Encodable

`BER, DER`

### Fields inherited from interface org.apache.commons.ssl.asn1.DERTags

`APPLICATION, BIT_STRING, BMP_STRING, BOOLEAN, CONSTRUCTED, ENUMERATED, EXTERNAL, GENERAL_STRING, GENERALIZED_TIME, GRAPHIC_STRING, IA5_STRING, INTEGER, NULL, NUMERIC_STRING, OBJECT_IDENTIFIER, OCTET_STRING, PRINTABLE_STRING, SEQUENCE, SEQUENCE_OF, SET, SET_OF, T61_STRING, TAGGED, UNIVERSAL_STRING, UTC_TIME, UTF8_STRING, VIDEOTEX_STRING, VISIBLE_STRING`

### Constructor Summary

Constructors
Constructor and Description
`DERGeneralizedTime(byte[] bytes)`
`DERGeneralizedTime(java.util.Date time)` base constructer from a java.util.date object
`DERGeneralizedTime(java.lang.String time)` The correct format for this is YYYYMMDDHHMMSS[.f]Z, or without the Z for local time, or Z+-HHMM on the end, for difference between local time and UTC time.

### Method Summary

Methods
`(package private) boolean` `asn1Equals(DERObject o)`
`private java.lang.String` `calculateGMTOffset()`
`private java.lang.String` `convert(int time)`
`(package private) void` `encode(DEROutputStream out)`
`java.util.Date` `getDate()`
`static DERGeneralizedTime` `getInstance(ASN1TaggedObject obj, boolean explicit)` return a Generalized Time object from a tagged object.
`static DERGeneralizedTime` `getInstance(java.lang.Object obj)` return a generalized time from the passed in object
`private byte[]` `getOctets()`
`java.lang.String` `getTime()` return the time - always in the form of YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).
`java.lang.String` `getTimeString()` Return the time.
`private boolean` `hasFractionalSeconds()`
`int` `hashCode()`

### Methods inherited from class org.apache.commons.ssl.asn1.ASN1Object

`equals, fromByteArray`

### Methods inherited from class org.apache.commons.ssl.asn1.DERObject

`toASN1Object`

### Methods inherited from class org.apache.commons.ssl.asn1.ASN1Encodable

`getDEREncoded, getDERObject, getEncoded, getEncoded`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### time

    java.lang.String time

### Constructor Detail

#### DERGeneralizedTime

    public DERGeneralizedTime(java.lang.String time)

The correct format for this is YYYYMMDDHHMMSS[.f]Z, or without the Z for local time, or Z+-HHMM on the end, for difference between local time and UTC time. The fractional second amount f must consist of at least one number with trailing zeroes removed.

Parameters:
  `time` - the time string.
Throws:
  `java.lang.IllegalArgumentException` - if String is an illegal format.

#### DERGeneralizedTime

    public DERGeneralizedTime(java.util.Date time)

base constructer from a java.util.date object

#### DERGeneralizedTime

    DERGeneralizedTime(byte[] bytes)

### Method Detail

#### getInstance

    public static DERGeneralizedTime getInstance(java.lang.Object obj)

return a generalized time from the passed in object

Throws:
  `java.lang.IllegalArgumentException` - if the object cannot be converted.

#### getInstance

    public static DERGeneralizedTime getInstance(ASN1TaggedObject obj,
                                 boolean explicit)

return a Generalized Time object from a tagged object.

Parameters:
  `obj` - the tagged object holding the object we want
  `explicit` - true if the object is meant to be explicitly tagged false otherwise.
Throws:
  `java.lang.IllegalArgumentException` - if the tagged object cannot be converted.

#### getTimeString

    public java.lang.String getTimeString()

Return the time.

Returns:
  The time string as it appeared in the encoded object.

#### getTime

    public java.lang.String getTime()

return the time - always in the form of YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).

Normally in a certificate we would expect "Z" rather than "GMT", however adding the "GMT" means we can just use:

         dateF = new SimpleDateFormat("yyyyMMddHHmmssz");

To read in the time and get a date which is compatible with our local time zone.

#### calculateGMTOffset

    private java.lang.String calculateGMTOffset()

#### convert

    private java.lang.String convert(int time)

#### getDate

    public java.util.Date getDate()
                           throws java.text.ParseException

Throws:
  `java.text.ParseException`

#### hasFractionalSeconds

    private boolean hasFractionalSeconds()

#### getOctets

    private byte[] getOctets()

#### encode

    void encode(DEROutputStream out)
          throws java.io.IOException

Specified by:
  `encode` in class `ASN1Object`
Throws:
  `java.io.IOException`

#### asn1Equals

    boolean asn1Equals(DERObject o)

Specified by:
  `asn1Equals` in class `ASN1Object`

#### hashCode

    public int hashCode()

Specified by:
  `hashCode` in class `ASN1Object`