Анализ неоднозначных дат (не зависит от языка)

Мне любопытно, как лучше всего обрабатывать неоднозначную строку даты на любом данном языке. Если предварительная проверка вводимых пользователем данных невозможна, как следует анализировать даты MM / dd / YYYY?

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

'1111900' как 11 января 1900 [М / ДД / ГГГГ] или 1 ноября 1900 [ММ / д / ГГГГ]?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
635
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

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

Я бы порекомендовал так называемый формат даты, не зависящий от локали. (ГГГГ-ММ-ДД)

Либо используйте это, либо четко укажите, в какой части находится год, месяц и день. (ДД МЕС ГГГГ или 22 апреля 2003 г.)

См .: взгляд w3 о форматировании даты.

Обновлено: неверно введен формат даты, не зависящий от локали

почему не ГГГГ-ММ-ДД согласно рекомендации?

Jimmy 15.01.2009 01:55

ГГГГ-ММ-ДД также можно легко отсортировать.

Gumbo 15.01.2009 02:13

В зависимости от того, насколько важно программное обеспечение, я буду рассматривать любую неоднозначную запись даты как недопустимую. Вы должны быть уверены (в источнике), что вводимая вами дата находится в разумном, однозначном формате. Если вам все же удается получить что-то вроде «1111900», значит, ввод неверен, кто-то, очевидно, каким-то образом обошел код проверки действительности, и, вероятно, самое правильное, что вы можете сделать, - это отбросить данные.

Конечно, если это не вариант и установка даты не критична, вы всегда можете догадаться, но это будут только предположение. Я бы определенно избегал этого, если бы это было возможно. Принятие необеззараженного ввода - не лучшая идея.

Единственный способ узнать разницу между 11 января и 1 ноября в такой системе - это контекст. В противном случае вам нужно будет пройти какое-то устранение неоднозначности. Этот конкретный формат даты был бы прекрасным примером патологически деструктивного сжатия.

Я предпочитаю, когда важна дата, - это использовать раскрывающиеся списки предложений или календарь, чтобы он всегда был в ожидаемом формате.

Другие вопросы по теме