Bouncy Castle Cryptography Library 1.77.0

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 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
 java.util.Date getDate()
           
static ASN1GeneralizedTime getInstance(ASN1TaggedObject taggedObject, 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.
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, 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 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 taggedObject,
                                              boolean explicit)
return a Generalized Time object from a tagged object.
Parameters:
taggedObject - 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.

Returns:
a String representation of the time.

getDate

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

hasFractionalSeconds

protected boolean hasFractionalSeconds()

hasSeconds

protected boolean hasSeconds()

hasMinutes

protected boolean hasMinutes()

hashCode

public int hashCode()
Overrides:
hashCode in class ASN1Primitive

Bouncy Castle Cryptography Library 1.77.0