Generalized Time

Values of this syntax hold generalized times, character strings representing a date and time. The syntax follows this ABNF:

GeneralizedTime = century year month day hour
[ minute [ second / leap-second ] ]
[ fraction ]
g-time-zone
century = 2(%x30-39)                             ; "00" to "99"
year    = 2(%x30-39)                             ; "00" to "99"
month   = ( %x30 %x31-39 )                       ; "01" (January) to "09"
/ ( %x31 %x30-32 )                     ; "10" to "12"
day     = ( %x30 %x31-39 )                       ; "01" to "09"
/ ( %x31-32 %x30-39 )                  ; "10" to "29"
/ ( %x33 %x30-31 )                     ; "30" to "31"
hour    = ( %x30-31 %x30-39 ) / ( %x32 %x30-33 ) ; "00" to "23"
minute  = %x30-35 %x30-39                        ; "00" to "59"
second      = ( %x30-35 %x30-39 )                ; "00" to "59"
leap-second = ( %x36 %x30 )                      ; "60"
fraction        = ( DOT / COMMA ) 1*(%x30-39)
g-time-zone     = %x5A                           ; "Z"
/ g-differential
g-differential  = ( MINUS / PLUS ) hour [ minute ]
MINUS           = %x2D                           ; minus sign ("-")
PLUS            = %x2B                           ; plus sign ("+")
Where the ABNF allows invalid times, such as Feb. 31, 2017,
the values are considered invalid.
When the "Z" form of the time zone is used,
the time value represents universal coordinated time.
Otherwise, it represents a local time
in the time zone indicated by the `g-differential`.
Example: `201702151036Z`
meaning 10:36 AM, February 15, 2017 universal coordinated time.
The syntax corresponds to
the `GeneralizedTime` ASN.1 type, with the exception that
local times without a differential are not permitted.

Origin

RFC 4517

Description

Generalized Time

OID

1.3.6.1.4.1.1466.115.121.1.24