From: Kevin Day Date: Wed, 9 Sep 2026 01:14:15 +0000 (-0500) Subject: Update: The time specification with the latest version from FLL. X-Git-Url: https://git.kevux.org/?a=commitdiff_plain;h=HEAD;p=kevux-tools Update: The time specification with the latest version from FLL. --- diff --git a/specifications/time.txt b/specifications/time.txt index 4af3cf9..e74348f 100644 --- a/specifications/time.txt +++ b/specifications/time.txt @@ -1,6 +1,7 @@ # fss-0002 iki-0000 # -# license: open-standard-license-1.0 +# license open_standard_license_1_1_or_later +# version 2025/03/22 # # This file (assumed to be named time.txt) can be more easily read using the following iki_read commands: # iki_read time.txt +Q -r UTC UTC -w -WW character "'" "'" code '"' '"' @@ -12,31 +13,64 @@ Time Specification: There are two units of bold:"Time", the first is simply called bold:"Time" and the second is called bold:"EpochTime". - Both bold:"Time" and bold:"EpochTime" are measured without the year but may contain a year to designate the point in the counting begins. + Both bold:"Time" and bold:"EpochTime" are measured without the base time but may contain a base time to designate the point in the counting begins. These are both represented by a single 64-bit (unsigned) integer. The default timezone is always UTC:"Coordinated Universal Time". - The common form is intended as the non-technical form that is form common use. + If no special designation is provided or otherwise understood, then a year is the default and expected base time. + Anything may be used as an alternative base point of time. + It could a decade, a day, a minute, or even a microsecond. + The base time must either be understand or be communicated somehow. + + The common form is intended for use as a less technical form for use in a more casual manner. This may have a negative value or be more than 64-bit digits long. - This is simply not expected to be interpreted as a unit of time on a computer (but nothing stops it from being interpreted). + This is simply not expected to be interpreted as a unit of time on a computer (but nothing stops it from being interpreted as such). - The technical forms are limit to 64-bit unsigned for technical use but should technology advance to a point where larger bits are needed then this allows for that. + The more technical forms are limited to 64-bit unsigned for technical use but should technology advance to a point where larger bits are needed then this allows for that. The systems should expect 64-bit and larger bits would have to become common before something larger than 64-bit is the expected or assumed default. Negative signs can be allowed but they must not prevent the full use of the 64-bit. The implementation of how this is done is left to the implementer except that the signs are immediately to the left of the digit. - For example code:"2022:-5" would be 5 units after the start of the year 2022. - Because the negative is allowed, so must the positive character (such as code:"2022:+5"). - A positive value is the default interpretation when no sign is valid. - - The unit of time called bold:"Time" is counted increments of a nanosecond, or 10^-9 seconds. - A unit of bold:"Time" is, therefore, equivalent to a nanosecond. - The default year for bold:"Time" is the current year. - - The unit of time called bold:"EpochTime" is counted increments of a second, or 10^-9 seconds. - A unit of bold:"EpochTime" is, therefore, equivalent to a second. - The default year for bold:"EpochTime" is the bold:"UNIX Epoch", sometimes called bold:"Unix time". - - The unit bold:"Time" has two technical forms and one common form, with the year and without the year. + For example code:"2022:-5" for the standard base time, a year, would be 5 units before the start of the year 2022. + The negative is allowed and so must the positive character also be allowed (such as code:"2022:+5"). + A positive value is the default interpretation when there is no explicit sign used. + + The unit of time called bold:"Time" is counted in increments of a nanosecond, or 10^-9 seconds, unless otherwise specified or understood. + The base unit of bold:"Time" is not exclusively fixed to a year and can be fixed to any base point of time. + The base unit can be inferred, directly designated through some other means, understood, asserted, or simply unknown or otherwise unspecified. + The general recommendation is that the default base unit, a year, for bold:"Time" is to represent the current year. + This recommendation may also be followed for other base formats, such as a day, where the bold:"Time" is to represent the current day. + When the base unit is not specified, then the behavior of the base unit is not explicitly defined and must be somehow understood. + + The unit of time called bold:"EpochTime" is counted increments of a second. + The bold:"EpochTime" is always expected to always be relative to the bold:"UNIX Epoch" year. + Specifying a custom base time itself is still relative to the bold:"UNIX Epoch" year. + Another common name for bold:"UNIX Epoch" is bold:"Unix time". + The general recommendation is that the default base unit to be a year for bold:"EpochTime". + + The unit bold:"Time" has two technical forms and one common form, with the base unit and without the base unit. + + A suggested use would be to wrap the bold:"Time" or bold:"EpochTime" in something that provides further context, such as bold:"IKI" and bold:"EKI". + The bold:"EKI" can more easily describe the base time changes. + + The bold:"IKI" could be used to designate the standard units bold:"time" and bold:"epochtime" like the following\: + code:`time:"12345"`. + code:`time:"2022:12345"`. + code:`epochtime:"12345"`. + code:`epochtime:"2022::12345"`. + + The bold:"EKI" could be used to designate the standard unit bold:"time" and bold:"epochtime" along with a more explicit base time like the following\: + code:`day:time:"12345"`. + code:`day:time:"100:12345"`. + code:`year:time:"2022:12345"`. + code:`day:epochtime:"12345"`. + code:`day:epochtime:"100::12345"`. + code:`year:epochtime:"2022::12345"`. + + In the previous examples for bold:"EKI" show code:"day" along with code:"epochtime". + For code:`day:epochtime:"100:12345"`, this means that the timestamp starts 100 days after the bold:"UNIX Epoch" year. + + In the previous examples for bold:"EKI" show code:"year" along with code:"epochtime". + For code:`year:epochtime:"2022:12345"`, this means that the timestamp start 2022 years after the bold:"UNIX Epoch" year. Key\: code:"\s" = White space.