Главная arrow Linux arrow FAQ arrow Основной синтаксис даты
Основной синтаксис даты PDF Печать E-mail

Основной синтаксис даты

"Дата" -- это строка, возможно пустая, содержащая много элементов, разделенных пробелами. Пробел может быть опущен, если не появляются никакие неоднозначности. Пустая строка означает начало сегодняшнего дня (т.е. полночь). Порядок пунктов несущественен. Строка даты может содержать много разных пунктов:

  • календарная дата
  • время суток
  • часовой пояс
  • день недели
  • относительные элементы
  • непосредственно числа.

Мы опишем каждый из этих типов элементов по очереди ниже.

Несколько чисел могут быть написаны словами в большинстве случаев. Это наиболее полезно для указания дня недели или относительных пунктов (см. ниже). Вот список: `first' -- 1, `next' -- 2, `third' -- 3, `fourth' -- 4, `fifth' -- 5, `sixth' -- 6, `seventh' -- 7, `eighth' -- 8, `ninth' -- 9, `tenth' -- 10, `eleventh' -- 11 и `twelfth' -- 12. Также `last'означает -1.

Когда месяц указывается таким образом, предполагается, что он указан численно, вместо "чтение полностью по буквам"; это изменяет допустимые строки.

Регистр букв полностью игнорируется в датах. Коментарии могут быть введены в круглых скобках, если включенные скобки правильно вложены. Дефисы без следующей за ними цифрой в начтоящее время игнорируютя. Лидирующие нули в числах игнорируются.

Календарная дата

"Календарная дата" указывает день года. Она указывается различными способами, в зависимости от того, указывается месяц численно или прописью. Все эти строки указывают одну календаную дату:

     1970-09-17           # ISO 8601.
     70-9-17              # По умолчанию XX век используется.
     70-09-17             # Лидирующие нули игнорируются.
     9/17/72              # Обычная запись в США.
     24 September 1972
     24 Sept 72           # September имеет специальное сокращение.
     24 Sep 72            # Трехбуквенные сокращения также допускаются.
     Sep 24, 1972
     24-sep-72
     24sep72

Год может быть опущен. В этом случае, используется последний указанный год, если такого нет -- текущий. Например:

     9/17
     sep 17

Здесь приведены правила.

Если месяц указан числом, допустим формат ISO 8601 `ГОД-МЕСЯЦ-ДЕНЬ', где ГОД -- это любое положительное число, МЕСЯЦ -- число между 01 и 12, ДЕНЬ -- число от 01 до 31. Лидирующий нуль должен быть указан, если число меньше 10. Если ГОД меньше 100, то 1900 добавляется к нему, для образования даты в XX веке. Конструкция `МЕСЯЦ/ДЕНЬ/ГОД', популярная в США допустима. Также `МЕСЯЦ/ДЕНЬ', опуская год.

Названия месяцев могут быть указаны полностью: `January', `February', `March', `April', `May', `June', `July', `August', `September', `October', `November' or `December'. Названия месяцев могут быть сокращены до первых трех символов, возможно заканчивающихся точкой. Также можно писать `Sept' вместо `September'.

Когда месяцы указаны прописью, календарная дата может быть задана следующим образом:

     ДЕНЬ МЕСЯЦ ГОД
     ДЕНЬ МЕСЯЦ
     МЕСЯЦ ДЕНЬ ГОД
     ДЕНЬ-МЕСЯЦ-ГОД

Или, опуская год:

     МЕСЯЦ ДЕНЬ

Время суток

"Время суток" в строках даты указывает время в данный день. Вот несколько примеров, представляющие одно и то же время:

     20:02:0
     20:02
     8:02pm
     20:02-0500      # В EST (Стандартное восточное время в США).

В общем случае время суток задается в виде `ЧАС:МИНУТЫ:СЕКУНДЫ', где ЧАС -- эточисло между 0 и 23, МИНУТЫ -- число между 0 и 59, СЕКУНДЫ -- число между 0 и 59. `:СЕУКНДЫ' могут быть опущены, в этом случае они считаются равными нулю.

Если после времени указывается `am' или `pm' (или `a.m.' или `p.m.') ЧАС долен быть от 1 до 12, `:МИНУТЫ' можно опустить (считаются равными нулю). `am' указывает на первую половину дня, `pm' -- на вторую. В такой записи 12 предшествует 1: полночь это `12am', полдень -- `12pm'.

После времени может быть указан часовой пояс в виде `ЗЧЧММ', где З -- `+' или `-', ЧЧ -- количество часов в поясе, ММ -- количество минут в поясе. Когда часовой пояс задан таким образом, время интерпретируется относительно Coordinated Universal Time (UTC), перекрывая любые предыдущие спецификации часового пояса или местный частовой пояс. МИНУТЫ во времени суток не могут быть опущены, если указан часовой пояс. Это единственный способ указать часовой пояс используя дробные части часа.

Или `am'/`pm' или часовой пляс могут быть указаны, но не оба.

Часовой пояс

"Часовой пояс" определяет международный часовой пояс, указываемый небоьшим количеством букв. Они поддерживаются для обратной совместимости и не рекомендуются, потому что они неодносзначны на практике: сокращение `EST' имеет разное значение в США и Австралии. Точки игнорируются. В настоящее время только целые часы в поясах огут быть представлены в "часовом поясе". См. предыдущий раздел для лучшего управления часовыми поясами.

Здесь приведены не сберегащие дневное время часовые пояса, индексированные по поясному часу

`-1200'
`Y' для военных.
`-1100'
`X' для военных.
`-1000'
`W' для военных.
`-0900'
`V' для военных.
`-0800'
`PST' для стандартного тихоокеанского, и `U' для военных.
`-0700'
`MST' для стандартного горного, and `T' для военных.
`-0600'
`CST' для стандартного центрального, and `S' для военных.
`-0500'
`EST' для стандартного восточного, and `R' для военных.
`-0400'
`AST' для стандартного атлантического, and `Q' для военных.
`-0300'
`P' для военных.
`-0200'
`O' для военных.
`-0100'
`N' для военных.
`+0000'
`GMT' для Гривича, `UT' для универсального, `UTC' для Coordinated Universal, `WET' для восточно-европейского, and `Z' для ISO 8601 и военных.
`+0100'
`A' для военных, `CET' для центрально-европейского, `MET' для Голландии, и `MEZ' для Германии.
`+0200'
`B' для военных, и `EET' для восточно-европейского.
`+0300'
`C' для военных.
`+0400'
`D' для военных.
`+0500'
`E' для военных.
`+0600'
`F' для военных.
`+0700'
`G' для военных.
`+0800'
`H' для военных.
`+0900'
`I' для военных, и `JST' для стандартного японского.
`+1000'
`GST' for Guam Standard, and `K' для военных.
`+1100'
`L' для военных.
`+1200'
`M' для военных, and `NZST' для стандарного ново-зеландского.

Здесь приведены сберегающие дневное время часовые пояса, индексированные по поясному часу. Также окончивая не сберегающие дневное время часовые пояса строкой `DST' отдельным словом (отделенным пробелом), соответсвующий сберегающий дневное время часовой пояс может быть указан.

`-0700'
`PDT' для тихоокеанского дневного.
`-0600'
`MDT' для горного дневного.
`-0500'
`CDT' для центрального дневного.
`-0400'
`EDT' для восточного дневного.
`-0300'
`ADT' для атлантического дневного.
`+0100'
`BST' для британского летнего, и `WEST' западно-европейского летнего.
`+0200'
`CEST' для центрально-европейского летнего, `MEST' для Голландии, и `MESZ' для Германии.
`+1300'
`NZDT' для ново-зеландского дневного.

День недели

Явное указание дня недели увеличавает дату (только в случае необходимости) для достижения того дня недели в будущем.

Дни недели могут быть написаны полностью: `Sunday', `Monday', `Tuesday', `Wednesday', `Thursday', `Friday' or `Saturday'. Дни могут быть сокращены до первых трех букв, возможно заканичаващихся точкой. Специальные сокращения `Tues' для `Tuesday', `Wednes' для `Wednesday' и `Thur' или `Thurs' для `Thursday' также допустимы.

Число может предшествовать дню недели для сдвига вперед дополнительных недель. Лучше всего это использовать в выражениях вида `third monday'. В этом контексте `last ДЕНЬ' или `next ДЕНЬ' также допустимы; они сдигают на неделю вперед или назад день, представляемый ДНЕМ.

Запятая, следующая за днем недели, игнорируется

Относительные элементы в строке даты

"Относительные элементы" устанавливают дату (или текущюу дату) вперед или назад. Эффект относительных пукнктов накпиливается. Вот несколько примеров.

     1 year
     1 year ago
     3 years
     2 days

Единица изменения времени может быть выбрана строкой `year' или `month' для изменения на целы годы или месяцы. Это не точные единицы, т.к. не все месяцы и годы имеют одинаковую продолжительность. Более точные единицы это: `fortnight', которая значаит 14 дней, `week' --- 7 дней, `day' -- 24 часа, `hour' -- 60 минут, `minute' или `min' --- 60 секунд и `second' или `sec' -- 1 секунда. Суффикс `s' для этих единииц допустим и игнорируется.

Единица времени может быть предворена множителем, данным как возможно число со знаком. Беззнаковые числа считатются положительными. Отсутсвие числа применяет 1 как множитель. Указывая за относительным пунктам слово `ago' эквивалентно предварению единицы множителем -1.

Строка `tomorrow' значит один день в будущее, завтра, (эквивалентно `day'), строка `yesterday' -- один день в прошлое, вчера, (эквивалентно `day ago').

Строки `now' или `today' -- это относительные пункты, указывающие нулевое смещение даты, эти строки исходят из факта, что нулевое смещение представляет собой текущее время, если предыдущие пункты его не изменили. Они могут использоваться для выделить другие пункты, как, например, в `12:00 today'. Строка `this' также иммет смысл нудевого смещения времени, но предподчительно в строках даты как `this thursday'.

Когда относительный пункт изменяет дату так, что сберегающий дневное время часовой пояс сменяется на не сберегающий дневное время часовой пояс или наоборот, что время выавнивается в соответвии с местным временем.

Непосредственные числа в строках данных

Точная интерпретация непосредственного десятичного числа заисит от контекста в строке даты.

Если десятичное число имеет вид ГГГГММДД и никаких элементов календарной даты перед ним нет в этой строке даты, то ГГГГ означает год, ММ -- месяц, а ДД -- день месяца.

Если десятичное число имеет вид ЧЧММ и никаких элементов времени суток перед ним нет в этой строке даты, то ЧЧ означает час суток, а ММ -- минуты часа. ММ может быть опущено.

Если календарная дата и время суток записаны слева от числа в строке даты, и нет относительных элементов, то число переопределяет год.

 
« Пред.   След. »

Календарь новостей

 
« 12 Окт 2008 »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031   

Опросы


При копировании материалов с сайта, ссылка на источник SlackGuide.com Обязательна.
Copyright © 2002-2007 | Powered by Lookinfo.net © 2007.

Страница сгенерирована за 0.038638 секунд