Time (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

org.bouncycastle.asn1.cms

## Class Time

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.cms.Time

- All Implemented Interfaces:
    ASN1Choice, ASN1Encodable, Encodable

      public class Time
      extends ASN1Object
      implements ASN1Choice

  RFC 5652: Dual-mode timestamp format producing either UTCTIme or GeneralizedTime.

       Time ::= CHOICE {
           utcTime        UTCTime,
           generalTime    GeneralizedTime }

  This has a constructor using java.util.Date for input which generates a `DERUTCTime` object if the supplied datetime is in range 1950-01-01-00:00:00 UTC until 2049-12-31-23:59:60 UTC. If the datetime value is outside that range, the generated object will be `DERGeneralizedTime`.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Time(java.util.Date time)` Creates a time object from a given date - if the date is between 1950 and 2049 a UTCTime object is generated, otherwise a GeneralizedTime is used.
    `Time(java.util.Date time, java.util.Locale locale)` Creates a time object from a given date and locale - if the date is between 1950 and 2049 a UTCTime object is generated, otherwise a GeneralizedTime is used.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Date` | `getDate()` Get java.util.Date version of date+time.
    `static Time` | `getInstance(ASN1TaggedObject obj, boolean explicit)`
    `static Time` | `getInstance(java.lang.Object obj)` Return a Time object from the given object.
    `java.lang.String` | `getTime()` Get the date and time as a String in full form century format.
    `ASN1Primitive` | `toASN1Primitive()` Produce an object suitable for an ASN1OutputStream.

    - ### Methods inherited from class org.bouncycastle.asn1.ASN1Object

      `encodeTo, encodeTo, equals, getEncoded, getEncoded, hasEncodedTagValue, hashCode`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Time

          public Time(java.util.Date time)

      Creates a time object from a given date - if the date is between 1950 and 2049 a UTCTime object is generated, otherwise a GeneralizedTime is used.
      Parameters:
        `time` - a date object representing the time of interest.

    - #### Time

          public Time(java.util.Date time,
                      java.util.Locale locale)

      Creates a time object from a given date and locale - if the date is between 1950 and 2049 a UTCTime object is generated, otherwise a GeneralizedTime is used. You may need to use this constructor 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 Time getInstance(ASN1TaggedObject obj,
                                         boolean explicit)

    - #### getInstance

          public static Time getInstance(java.lang.Object obj)

      Return a Time object from the given object.

      Accepted inputs:

      - null → null
      - `Time` object
      - `DERUTCTime` object
      - `DERGeneralizedTime` object
      Parameters:
        `obj` - the object we want converted.
      Throws:
        `java.lang.IllegalArgumentException` - if the object cannot be converted.

    - #### getTime

          public java.lang.String getTime()

      Get the date and time as a String in full form century format.

    - #### getDate

          public java.util.Date getDate()

      Get java.util.Date version of date+time.

    - #### toASN1Primitive

          public ASN1Primitive toASN1Primitive()

      Produce an object suitable for an ASN1OutputStream.
      Specified by:
        `toASN1Primitive` in interface `ASN1Encodable`
      Specified by:
        `toASN1Primitive` in class `ASN1Object`
      Returns:
        a primitive representation of this object.