Скажите, а как давно при написании и утверждении стандартов (точных технических документов по определению, без "различных трактовок") стали использовать "гуманитарные подходы" с возможностью указания неконкретных терминов, двояких (и более) трактовок, слов и понятий, обозначающих не то, что предполагается иметь в виду, с использованием чего-либо со "скрытым смыслом" или "на основе мнений"? Это реально очень интересно (ведь кто-то же эти документы не только пишет, но и проверяет, утверждает, а потом и использует - ни у кого не возникает вопросов?).
Смотрите, есть стандарт EANCOM и в нем заявлены вот таки форматы дат,
цитата:
4.5 Date, time and period
Date, time, and period information is provided in the DTM segment which appears in all EANCOM® messages. The EANCOM® recommended format for dates is CCYYMMDD. In addition EANCOM® recommends that all dates which include a year element (YY) be preceded by the century element (CC). Various formats may be indicated through the use of the qualifier in data element 2379 of the DTM segment.
Time is indicated always in the local time of the sender of the message.
To indicate a period of time only one occurrence of the DTM segment with appropriate code values in data elements 2005 and 2379 is required. When indicating the actual dates of the period they should be represented in the format CCYYMMDDCCYYMMDD with the first occurrence of CCYYMMDD indicating the start date of the period.
Examples:
DTM+2:19970201:102' - Indicates the requested delivery date as being the 1st of February 1997.
DTM+134:199702151300:203' - Indicates the fact that the rate of exchange was quoted on the 15th of February 1997 at 1pm.
DTM+325:1994020119970210:718' - Indicates the tax period as being from the 1st of February 1994 to the 10th of February 1997 inclusive.
Вот
цитата более свежих лет:
4.4. Date, time and period (DTM)
Date, time, and period information is provided in the DTM segment which appears in all EANCOM® messages. The EANCOM® recommended format for dates is CCYYMMDD, where all dates which include a year element (YY) are preceded by the century element (CC). Various formats may be indicated through the use of the qualifier in data element 2379 of the DTM segment.
Time is always indicated in the local time of the sender of the message.
To indicate a period of time only one occurrence of the DTM segment with appropriate code values in data elements 2005 and 2379 is required. When indicating the actual dates of the period they should be represented in the format CCYYMMDDCCYYMMDD with the first occurrence of CCYYMMDD indicating the start date of the period.
Examples:
DTM+2:20020201:102' - Indicates the requested delivery date (2) as being the 1st of February 2002, expressed in format: CCYYMMDD (102).
DTM+134:200202151300:203' - Indicates the fact that the rate of exchange (134) was quoted on the 15th of February 2002 at 1pm, expressed in format: CCYYMMDDHHMM (203).
DTM+325:2002020140020210:718' - Indicates the tax period (325) as being from the 1st of February 2002 to the 10th of February 2002 inclusive, expressed in format: CCYYMMDD-CCYYMMDD.
(в этом примере вообще, похоже, какой-то мусор указан, судя по данным, не соответствующим заявленному же шаблону; этот пример, в отличие от того, что приведен в прошлой версии, в табличке выше, читается как: 2002 02 01 4002 02 10, т.е. у них тут еще и опечатка: [20][02][02][01][40][02][02][10], с 01 Februrary 2002 по 10 February 4002, в их же понимании, а реально 01 Feb 1902 по 10 Feb 3902 ;) --
sporaw)
Практический пример см. внизу (вот "102" и примеры в самом низу):
https://www.gs1.org/sites/default/files/docs/eancom/ean02s4/part2/orders/053.htm Все примеры форматов дат (нет ни одного YYYY):
https://www.gs1.org/sites/default/files/docs/eancom/ean02s3/part3/dc82.htm Каким образом у людей century (век) и его обозначение CC вдруг стало просто "первыми двумя цифрами года" (т.е. они CCYY трактуют как YYYY)?! Откуда такое понимание пришло, а самое главное - почему так должны считать остальные люди? (Напоминаю про точные и конкретные формулировки). Это представление не соответствует понятию Century никаким образом (см.
wiki), включая и общеупотребимое в индустрии (ниже в комментариях будут примеры IBM и Oracle).
Фактически, в соответствии с требованиями стандарта, должно быть указано не как в примерах (1999 => 19 99, 2002 => 20 02), а вот так:
...
1999 => 20 99
2000 => 20 00 (это фактически [1]00 *)
2001 => 21 01
...* - тем, кто празднует с наступлением 2000-ого года новое тысячелетие и век, рекомендую разобраться со следующей ссылкой в wiki:
https://en.wikipedia.org/wiki/Century)
WTF? Каким образом это попало в технический стандарт (!) и каким образом это в стандарте присутствует десятилетиями? Более того, куча компаний по всему миру пишут софт под этот стандарт и никто не задается этим вопросом в явном виде (Google по этому моменту в связке с EANCOM молчит; по крайней мере, мне найти подобные вопросы, обсуждения и разъяснения, найти не удалось). Соответственно, выходит так, что все эти компанию реализуют "криво" - ровно так, как описано в кривых (абсолютно некорректных) примерах стандарта, не соответствующих заявленным определениям?
Такая трактовка и описание могут слегка напоминать тех людей, кто "
цифрами" называет
числа. Однако, это бытовая речь, но никак не технический стандарт, где невозможны никакие "двойные толкования" и "скрытые смыслы".
P.S. Можно заглянуть еще в стандарт на даты
ISO 8601:2004 (.pdf) и попробовать найти там хоть что-то похожее.