Представление частичных дат в JSON API - PullRequest
1 голос
/ 04 июня 2009

Я управляю API данных RESTful JSON, объем которого растет. В настоящее время мы возвращаем все даты по проводам в виде строк «ГГГГ-ММ-ДД», но нам также необходимо представить концепцию частичных дат.

Под частичной датой я подразумеваю значение даты, в котором есть неизвестные компоненты: год-месяц или год. На нашем уровне представления это будет переведено как:

2009-09-03 =>  '3rd September 2009'
2009-09    =>  'September 2009'
2009       =>  'Undated 2009'

Есть ли прецедент или стандарт для этого типа данных? Например, MySQL позволяет это, разрешая значения 00 в полях даты и времени - например: «2009-00-00» будет сохранен непосредственно в поле даты MySQL, но это значение не будет преобразовываться согласованно при анализе в библиотеках дат большинства языков программирования .

Каков наилучший способ семантического представления этой концепции частичных дат в фиде JSON?

В идеале, мы могли бы реализовать решение, которое было бы легко проанализировать нашим потребителям, а также было бы легко объяснить в документации.

Ответы [ 3 ]

4 голосов
/ 04 июня 2009

РЕДАКТИРОВАТЬ: Думая об этом снова, YYYY-MM и YYYY оба действительны ISO 8601 , поэтому, вероятно, было бы лучше просто использовать это.

Не существует стандарта для дат JSON (любого типа), потому что JSON является подмножеством литерального синтаксиса JavaScript, а JS не имеет литералов даты. См. http://msdn.microsoft.com/en-us/library/bb299886.aspx#intro_to_json_sidebarb.

0 голосов
/ 04 июня 2009

С точки зрения хранения, вы можете хранить неоднозначность, сохраняя год, месяц и день в отдельных столбцах и допуская пустые значения. Таким образом, вы можете запросить его с помощью конкатенации строк и функции coalesce (day, '00 '), чтобы получить' 00 ', если столбец пуст.

0 голосов
/ 04 июня 2009

Вы можете найти свое решение @ www.datejs.com

Спасибо.

...