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
Read a different version of :