Asn1Time
ASN.1 TIME (required since GENERALIZED TIME and UTC TIME exist).
The concrete subtype — SecondsCapped vs Fractional — is the single source of truth for whether an encoded fractional second is present:
SecondsCapped: no fractional second (UTC TIME, or GENERALIZED TIME with no
.fraction).Fractional: an explicitly encoded fractional second, held verbatim in Fractional.fractionalSeconds (may even be
"0"; see Fractional.fractionalSeconds).
Do not infer the presence or absence of a fraction from instant (or instant.nanosecondsOfSecond). instant is truncated to nanosecond resolution, so a Fractional carrying a sub-nanosecond or all-zero fraction (e.g. .0000000000001 or .000) can report nanosecondsOfSecond == 0 while still encoding a fraction. Branch on the subtype, never on the instant — using the instant may misclassify cases.
Inheritors
Types
Enum of supported Time formats
A GENERALIZED TIME carrying an exact fractional second. Produced only by decoding or from a sub-second Instant; a whole-second value is always a SecondsCapped instead.
An Asn1Time with no encoded fractional second (whole-second) — the canonical DER-minimal form, and the only way to construct a time from Kotlin.
Properties
Indicates whether this timestamp uses UTC TIME or GENERALIZED TIME.
The timestamp value only, truncated to Instant's nanosecond resolution. For SecondsCapped this is whole-second; for Fractional it reflects the decoded fraction only up to nanoseconds.
Functions
Convenience function to directly get the DER-encoded representation of the implementing object
Exception-free version of encodeToDer
Encodes the implementing object into an A
Exception-free version of Asn1Encodable.encodeToTlv
shorthand for Asn1Element.prettyPrint, hence, a call to this function encodes this encodable to an Asn1Element, holds it in memory, pretty prints it, and discards it. This characteristic may be relevant in memory-constrained environments.
Returns a fresh instance of a SecondsCapped version of this Asn1Time.
Creates a new implicitly tagged ASN.1 Element from this ASN.1 Element. NOTE: The TagClass of the provided tag will be used! If you want the result to have TagClass.CONTEXT_SPECIFIC, also invoke tag withClass TagClass.CONTEXT_SPECIFIC!. If a CONSTRUCTED Tag is applied to an ASN.1 Primitive, the CONSTRUCTED bit is overridden and set to zero
Creates a new implicitly tagged ASN.1 Element from this ASN.1 Structure. If the provided template's tagClass is not set, the class of the resulting structure defaults to TagClass.CONTEXT_SPECIFIC. If a CONSTRUCTED Tag is applied to an ASN.1 Primitive, the CONSTRUCTED bit is overridden and set to zero
Creates a new implicitly tagged ASN.1 Element from this ASN.1 Element. Sets the class of the resulting structure to TagClass.CONTEXT_SPECIFIC