ASN1GeneralizedTime (Bouncy Castle Library 1.52 API Specification)
Date: 2015-03-01

org.bouncycastle.asn1

## Class ASN1GeneralizedTime

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.ASN1Primitive
    - - org.bouncycastle.asn1.ASN1GeneralizedTime

- All Implemented Interfaces:
    ASN1Encodable, Encodable
  Direct Known Subclasses:
    DERGeneralizedTime

      public class ASN1GeneralizedTime
      extends ASN1Primitive

  Base class representing the ASN.1 GeneralizedTime type.

  The main difference between these and UTC time is a 4 digit year.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ASN1GeneralizedTime(java.util.Date time)` Base constructor from a java.util.date object
    `ASN1GeneralizedTime(java.util.Date time, java.util.Locale locale)` Base constructor from a java.util.date and Locale - you may need to use this if the default locale doesn't use a Gregorian calender so that the GeneralizedTime produced is compatible with other ASN.1 implementations.
    `ASN1GeneralizedTime(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
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Date` | `getDate()`
    `static ASN1GeneralizedTime` | `getInstance(ASN1TaggedObject obj, boolean explicit)` return a Generalized Time object from a tagged object.
    `static ASN1GeneralizedTime` | `getInstance(java.lang.Object obj)` return a generalized time from the passed in object
    `java.lang.String` | `getTime()` return the time - always in the form of YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).
    `java.lang.String` | `getTimeString()` Return the time.
    `int` | `hashCode()`

    - ### Methods inherited from class org.bouncycastle.asn1.ASN1Primitive

      `equals, fromByteArray, toASN1Primitive`

    - ### Methods inherited from class org.bouncycastle.asn1.ASN1Object

      `getEncoded, getEncoded, hasEncodedTagValue, toASN1Object`

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

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

- - ### Constructor Detail

    - #### ASN1GeneralizedTime

          public ASN1GeneralizedTime(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.

    - #### ASN1GeneralizedTime

          public ASN1GeneralizedTime(java.util.Date time)

      Base constructor from a java.util.date object
      Parameters:
        `time` - a date object representing the time of interest.

    - #### ASN1GeneralizedTime

          public ASN1GeneralizedTime(java.util.Date time,
                             java.util.Locale locale)

      Base constructor from a java.util.date and Locale - you may need to use this if the default locale doesn't use a Gregorian calender so that the GeneralizedTime produced is compatible with other ASN.1 implementations.
      Parameters:
        `time` - a date object representing the time of interest.
        `locale` - an appropriate Locale for producing an ASN.1 GeneralizedTime value.

  - ### Method Detail

    - #### getInstance

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

      return a generalized time from the passed in object
      Parameters:
        `obj` - an ASN1GeneralizedTime or an object that can be converted into one.
      Returns:
        an ASN1GeneralizedTime instance, or null.
      Throws:
        `java.lang.IllegalArgumentException` - if the object cannot be converted.

    - #### getInstance

          public static ASN1GeneralizedTime 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.
      Returns:
        an ASN1GeneralizedTime instance.
      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.

    - #### getDate

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

      Throws:
        `java.text.ParseException`

    - #### hashCode

          public int hashCode()

      Specified by:
        `hashCode` in class `ASN1Primitive`