2009-02-23 3 views
3

Возьмите две следующие примеры:Почему синтаксический анализ даты зависит от разделителей?

Date.parse("02/20/2009") 
Date.parse("02-20-2009") 

В первом примере предполагается, что для того, чтобы быть MM DD YYYY, но во втором примере возникает ошибка, потому что (я предполагаю) он пытается проанализировать это как DD MM YYYY.

Почему?

ответ

10

"02/20/2009" является дата представления только в en_US языка. «02-20-2009», как предполагается, не соответствует стандарту. Существуют два популярных стандарта, используемых в большинстве случаев, за исключением США: DD-MM-YYYY или ISO 8601, который является ГГГГ-ММ-ДД.

http://en.wikipedia.org/wiki/File:Date.png

0

В разных местах используются разные разделители в датах и ​​разные заказы на детали (год, месяц, день). Ruby передает строку даты нескольким функциям, которые постепенно пытаются разобрать их на основе разделителей.

Смежные вопросы