Class ASN1GeneralizedTime

  • All Implemented Interfaces:
    io.anyline.nfc.bouncycastle.asn1.ASN1Encodable , io.anyline.nfc.bouncycastle.util.Encodable

    
    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'

    This is what is called "restricted string", and it uses ASCII characters to encode digits and supplemental data. 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.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
      ASN1GeneralizedTime(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.
      ASN1GeneralizedTime(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.
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      static ASN1GeneralizedTime getInstance(Object obj) return a generalized time from the passed in object
      static ASN1GeneralizedTime getInstance(ASN1TaggedObject taggedObject, boolean explicit) return a Generalized Time object from a tagged object.
      String getTimeString() Return the time.
      String getTime() return the time - always in the form of YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).
      Date getDate()
      int hashCode()
      • Methods inherited from class io.anyline.nfc.bouncycastle.asn1.ASN1Primitive

        encodeTo, encodeTo, equals, equals, equals, fromByteArray, toASN1Primitive
      • Methods inherited from class io.anyline.nfc.bouncycastle.asn1.ASN1Object

        equals, getEncoded, getEncoded
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ASN1GeneralizedTime

        ASN1GeneralizedTime(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.
        Parameters:
        time - the time string.
      • ASN1GeneralizedTime

        ASN1GeneralizedTime(Date time)
        Base constructor from a java.util.
        Parameters:
        time - a date object representing the time of interest.
      • ASN1GeneralizedTime

        ASN1GeneralizedTime(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.
        Parameters:
        time - a date object representing the time of interest.
        locale - an appropriate Locale for producing an ASN.1 GeneralizedTime value.
    • Method Detail

      • getInstance

         static ASN1GeneralizedTime getInstance(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.

      • getInstance

         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.

      • getTimeString

         String getTimeString()

        Return the time.

        Returns:

        The time string as it appeared in the encoded object.

      • getTime

         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.