--- /dev/null
+UserInfoFormat-dateTime
+{Z39-50-userInfoFormat dateTime (6)} DEFINITIONS ::=
+BEGIN
+IMPORTS IntUnit FROM Z39-50-APDU-1995;
+
+DateTime ::= SEQUENCE{
+ date [1] Z3950Date OPTIONAL,
+ time [2] Z3950Time OPTIONAL
+ -- one or the other, or both
+ }
+
+Z3950Date ::= SEQUENCE{
+ year [1] IMPLICIT INTEGER,
+ -- For "positive" years, i.e. 1 AD or later, supply
+ -- the absolute year, e.g. If the year is 1995, supply
+ -- the integer 1995; the value 95 would indicate the
+ -- year 0095.
+ -- For "negative" years, e.g. 1 BC or earlier, -1
+ -- represents 1 BC, -2 represents 2 BC, etc. Zero is
+ -- invalid, because there was no year zero.
+ partOfYear [2] CHOICE{ -- may be omitted if only year is significant
+ monthAndDay [1] IMPLICIT SEQUENCE{
+ month [2] IMPLICIT INTEGER,
+ -- value 1-12
+ day [3] IMPLICIT INTEGER OPTIONAL
+ -- may be omitted if only year and month
+ -- are significant. Value 1-31.
+ },
+ julianDay [2] IMPLICIT INTEGER, -- Value 1 - 366.
+ weekNumber [3] IMPLICIT INTEGER, -- Value 1 - 53.
+ quarter [4] CHOICE{
+ first [1] IMPLICIT NULL,
+ second [2] IMPLICIT NULL,
+ third [3] IMPLICIT NULL,
+ fourth [4] IMPLICIT NULL},
+ season [5] CHOICE{
+ winter [1] IMPLICIT NULL,
+ spring [2] IMPLICIT NULL,
+ summer [3] IMPLICIT NULL,
+ autumn [4] IMPLICIT NULL}
+ } OPTIONAL,
+ flags [3] IMPLICIT SEQUENCE{
+ circa [1] IMPLICIT NULL OPTIONAL,
+ -- if this flag is set then the date is "approximate".
+ era [2] CHOICE{
+ -- If era occurs, partOfYear should not occur.
+ decade [1] IMPLICIT NULL,
+ -- year must be multiple of 10.
+ -- For example, 1900 refers to
+ -- the decade covering the years
+ -- 1900 through 1909.
+ century [2] IMPLICIT NULL,
+ -- year must be multiple of 100.
+ millennium [3] IMPLICIT NULL
+ -- year must be multiple of 1000.
+ } OPTIONAL
+ } OPTIONAL
+ }
+
+
+Z3950Time ::= SEQUENCE{
+ hour [1] IMPLICIT INTEGER,
+ -- Value 0-23.
+ minute [2] IMPLICIT INTEGER OPTIONAL,
+ -- value 0-59. May be omitted when hour only is
+ -- significant (in which case second and
+ -- partOfSecond must also be omitted).
+ second [3] IMPLICIT INTEGER OPTIONAL,
+ -- value 0-59. May be omitted when only hour, or
+ -- hour and minute, is significant (in which case
+ -- partOfSecond must also be omitted).
+ partOfSecond [4] IMPLICIT IntUnit OPTIONAL,
+ -- Use Unit System = 'si', Unit type = 'time';
+ -- Unit = 'second', with appropriate value and
+ -- scale factor.
+ zone [5] CHOICE{
+ local [1] IMPLICIT NULL,
+ utc [2] IMPLICIT NULL,
+ utcOffset [3] IMPLICIT INTEGER -- in minutes
+ }}
+END