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
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.
-
-
Field Summary
Fields Modifier and Type Field Description protected byte[]
time
-
Constructor Summary
Constructors Constructor Description 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.ASN1GeneralizedTime(java.util.Date time)
Base constructor from a java.util.date objectASN1GeneralizedTime(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.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Date
getDate()
static ASN1GeneralizedTime
getInstance(java.lang.Object obj)
return a generalized time from the passed in objectstatic ASN1GeneralizedTime
getInstance(ASN1TaggedObject obj, boolean explicit)
return a Generalized Time object from a tagged 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
-
-
-
-
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 wantexplicit
- 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
- Throws:
java.text.ParseException
-
hasFractionalSeconds
protected boolean hasFractionalSeconds()
-
hasSeconds
protected boolean hasSeconds()
-
hasMinutes
protected boolean hasMinutes()
-
hashCode
public int hashCode()
- Specified by:
hashCode
in classASN1Primitive
-
-