Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.85
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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.

One second resolution date+time on UTC timezone (Z) with 4 digit year (valid from 0001 to 9999).

Timestamp format is: yyyymmddHHMMSS'Z'

## X.690

This is what is called "restricted string", and it uses ASCII characters to encode digits and supplemental data.

### 11: Restrictions on BER employed by both CER and DER

#### 11.7 GeneralizedTime

11.7.1 The encoding shall terminate with a "Z", as described in the ITU-T Rec. X.680 | ISO/IEC 8824-1 clause on GeneralizedTime.

11.7.2 The seconds element shall always be present.

11.7.3 The fractional-seconds elements, if present, shall omit all trailing zeros; if the elements correspond to 0, they shall be wholly omitted, and the decimal point element also shall be omitted.

Constructor Summary
`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 `Date` and an explicit `Locale`.
`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
`java.util.Date` | `getDate()`
`static ASN1GeneralizedTime` | `getInstance(ASN1TaggedObject taggedObject, boolean declaredExplicit)` 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
`static ASN1GeneralizedTime` | `getTagged(ASN1TaggedObject taggedObject, boolean declaredExplicit)`
`java.lang.String` | `getTime()` return the time - always in the form of YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).
`java.lang.String` | `getTimeString()` Return the time.
`protected boolean` | `hasFractionalSeconds()`
`int` | `hashCode()`
`protected boolean` | `hasMinutes()`
`protected boolean` | `hasSeconds()`

Methods inherited from class org.bouncycastle.asn1.ASN1Primitive
`encodeTo, encodeTo, equals, equals, equals, fromByteArray, fromStream, toASN1Primitive`

Methods inherited from class org.bouncycastle.asn1.ASN1Object
`getEncoded, getEncoded, hasEncodedTagValue`

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 `Date` and an explicit `Locale`. The selects the calendar used by the underlying `SimpleDateFormat`. Most callers should prefer the simple `ASN1GeneralizedTime(Date)` form, which always formats under an English Gregorian locale (so the encoded year is the spec-mandated Gregorian one regardless of `Locale.getDefault()`, including on JVMs whose default uses a non-Gregorian calendar such as Thai Buddhist or Japanese Imperial ). Reach for this form only when you need explicit control over the formatter's calendar.

Parameters:
  `time` - a date object representing the time of interest.
  `locale` - the Locale whose calendar the underlying SimpleDateFormat should use.

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 taggedObject,
                                                  boolean declaredExplicit)

  return a Generalized Time object from a tagged object.

  Parameters:
    `taggedObject` - the tagged object holding the object we want
    `declaredExplicit` - 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.

### getTagged

    public static ASN1GeneralizedTime getTagged(ASN1TaggedObject taggedObject,
                                                boolean declaredExplicit)

### 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.

  Returns:
    a String representation of the time.

### getDate

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

  Throws:
    `java.text.ParseException`

### hasFractionalSeconds

    protected boolean hasFractionalSeconds()

### hasSeconds

    protected boolean hasSeconds()

### hasMinutes

    protected boolean hasMinutes()

### hashCode

    public int hashCode()

  Specified by:
    `hashCode` in class `ASN1Primitive`

Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.85
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD