Package 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
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
ConstructorsConstructorDescriptionASN1GeneralizedTime
(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.ASN1GeneralizedTime
(Date time) Base constructor from a java.util.date objectASN1GeneralizedTime
(Date time, 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. -
Method Summary
Modifier and TypeMethodDescriptiongetDate()
static ASN1GeneralizedTime
getInstance
(Object obj) return a generalized time from the passed in objectstatic ASN1GeneralizedTime
getInstance
(ASN1TaggedObject taggedObject, boolean explicit) return a Generalized Time object from a tagged object.getTime()
return the time - always in the form of YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).Return the time.protected boolean
int
hashCode()
protected boolean
protected boolean
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
-
Constructor Details
-
ASN1GeneralizedTime
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:
IllegalArgumentException
- if String is an illegal format.
-
ASN1GeneralizedTime
Base constructor from a java.util.date object- Parameters:
time
- a date object representing the time of interest.
-
ASN1GeneralizedTime
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 Details
-
getInstance
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:
IllegalArgumentException
- if the object cannot be converted.
-
getInstance
return a Generalized Time object from a tagged object.- Parameters:
taggedObject
- the tagged object holding the object we wantexplicit
- true if the object is meant to be explicitly tagged false otherwise.- Returns:
- an ASN1GeneralizedTime instance.
- Throws:
IllegalArgumentException
- if the tagged object cannot be converted.
-
getTimeString
Return the time.- Returns:
- The time string as it appeared in the encoded object.
-
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
- Throws:
ParseException
-
hasFractionalSeconds
protected boolean hasFractionalSeconds() -
hasSeconds
protected boolean hasSeconds() -
hasMinutes
protected boolean hasMinutes() -
hashCode
public int hashCode()- Specified by:
hashCode
in classASN1Primitive
-