Дополнительно
Есть ли техническая причина, почему, в программировании, формат даты по умолчанию-ГГГГММДД, а не что-то другое?
Есть ли технических причин, почему это так? Мне было интересно, в случае РСУБД, что это как-то связано с производительностью, так и "год" это более конкретный, чем а "месяц" Ну, например: у вас есть только один 2000 год, но каждый год на "январь", который будет легче/быстрее фильтровать/Сортировать что-то по года первый, и что'ы, почему год на первом месте.
Но я Дон'т знать, если это действительно имеет смысл... есть ли смысл вообще?
121
14
Таким образом, сроки могут легко быть отсортированы как строки по умолчанию сортировка правила (т. е. лексикографической сортировки).
Это также, почему и день и месяц указываются двумя цифрами (добавление ведущих нулей, если это необходимо).
На самом деле это один из форматов даты, определенной ИСО 8601. Этот стандарт также определяет дату и время создания, формат, `2015-03-27T15:26:наклонила 40z, которая также сортировать как строки.
Однако ГГГГММДД имеет дополнительное преимущество, что делает его можно легко (нет подстроки или символа замены участвует) разобрать строку как целое число, и до сих пор используют по умолчанию заказ на целые числа.
Еще не упомянул, но вы быстро замазать заказа внутри гггг. Что's уже тысячелетия, века, десятилетия, годы. Это, так сказать, гггг уже заказал с максимальным сроком в кратчайшие сроки. То же самое касается мм и ДД, что's просто, как система работает.
Поэтому, чтобы сохранить порядок полей between соответствовать порядку полей within, единственный вариант-ГГГГММДД.
Как zahbaz и Арсений Муженко отметил, что ГГГГММДД легко форматах рода. Это не счастливое совпадение, что'ы прямое следствие вовлечения месторождения долгое время (и сохраняя длина фиксированная, мы представляем здесь проблема Y10K.)
Да. Эти части программного обеспечения будет использовать ИСО 8601.
ИСО 8601 имеет ряд преимуществ по сравнению с другими форматами дат:
1_file, 10_file, 2_file
).А почему ИСО 8601 существует, в первую очередь, это's, потому что люди стали замечать, дата-форматы неоднозначным и запутанным, когда обмен данными между странами/системы, и им нужно что-то однозначное.
Обоснование см. В спецификаций's введение.
Стандарт определяет “базовые” вариации как минимизация использования разделителей. Так,
ГГГГММДД
- это основная альтернативный в расширенном форматегггг-ММ-ДД
.Это's, потому что все другие способы являются неоднозначными.
01/02/2003 что это значит? Второго января 2003 года? Или в Европе: 1 февраля 2003? Это становится еще хуже, если вы используете две цифры для года, как 01/02/03.
Вот почему вы используете ГГГГММДД, это'ы конвенции, которая позволяет нам четко сообщить о датах, 20030201 как дата-это всегда понятно. (и это делает его легче для сортировки)
(Сейчас Дон'т пойти хранить, что целое число 20 млн. 30 млн. 2 СТО и 1. пожалуйста, ОК? довольно пожалуйста?)
Пусть Т1 и Т2 быть различных целых чисел, которые представляют собой два раза написано в ГГГГММДД форматирования. Тогда Т1 < Т2 означает, что Т2 произошел после Т1.
Вас потерять этот заказ с ДД и первом форматирование мм.
ИСО, ИМО, единственный разумный формат.
Один момент не упомянул, что в интерактивных входов, этот формат позволяет контролировать входной сигнал.
Система не может знать, если в месяце 28, 29, 30 или 31 день, не зная конкретный год и месяц. Когда интерактивный ввод мандатов, что год и месяц прийти первым он может проверить, если день (последний вставлен) находится в разрешенном диапазоне.
Согласен, вопрос был в основном о формате даты, но можно утверждать, что формат даты следует форматирования для пользователя.
ГГГГММДД заказы на нужные же вам номера заказов: самую значительную часть первого. ММДДГГГГ было бы как написать на "Сто двадцать три" как "Двадцать один сотни три".
В нашей культуре, мы имеем естественное понимание ММДДГГГГ, потому что, как люди, у нас есть осознание времени, и годы медленно. Как правило, мы знаем, какой сейчас год. Увидев год редко имеет значение, поэтому мы подтолкнуть ее к спине. Месяцев меняться достаточно быстро, чтобы сохранить их значение. Других культур справиться с этим differnently. Большая часть мира предпочитает ДДММГГГГ.
Сортировка уже было сказано, но однозначно самый полезный причина делать это сравнить их как "ниточки", и да 26 метку персонаж заказал аналогично.
Я знаю, такие сравнения имеют важное значение для сортировки, но это, как правило, полезно в течение 2 сортировки элементов.
Я работал на проектах, где это не было принято, и да, программисты пытались (с переменным успехом), чтобы сравнивать даты как строки.
Довольно форматирование на стороне клиента или набирание.
Этот формат делает алфавитном порядке строки идентичны хронологическом порядке дат. Это полезно, потому что многие инструменты предоставляют алфавитном заказ например, файлов по именам, но никак не произвольно формате парсинга даты из имени файла и отсортировать их.
Это's о ограничений. Представьте себе год, месяц и день в качестве параметров, в формате ГГГГММДД каждого параметра является более строгим, чем предыдущий.
Поэтому если вы хотите найти что-то, что случилось в 1970 году, вы можете сделать это путем поиска в строке, начинающиеся на
то"1970*"
В, но если вы помните, что месяц можно добавить месяц, как в"197005*"
в. Таким образом, каждый глаз "параметров" из даты дает вам более конкретную информацию.Это'ы единственный способ, чтобы перейти от менее конкретная информация (в
"1970*"
В) для более конкретной информации (в"на" 19700523;
).Это's в понятном человеку формате для ввода и вывода, это's не обязательно хранятся таким образом.
На третий все языки программирования были разработаны в стране английского в качестве основного языка и в большинстве современных придерживаются стандартного ряда описание - международный стандарт для дат ИСО 8601.
Дополнительная информация: (ТМИ?)
Как меняется время, как правило, вперед, дней прирост первого, затем месяцев, и наконец лет - это может быть легче понять, если мы десятичной даты (и десятичное время) - по прошествии времени количество становится больше. Это's просто легче для людей, чтобы посмотреть на количество и сравнить его на другую дату с первого взгляда.
Компьютер не'т помощь какие структуры вы хотите использовать, и в большинстве (но не все) компьютеры бинарной логики используется - база е на самом деле есть низкой радикса экономики но разве'т самый эффективного, ни простой для полный набор.
Фактический вход и выход формат даты зависит от страны и по локализация, в то время как ГГГГММДД может показаться, что имеет смысл и то, что вы привыкли к нему разве't универсальный сегодня, не так в прошлом долгое время, тем не менее, даже сегодня римские являются обычно используется для даты.
Зная год, заранее говорит вам, сколько дней в году, самая большая различия в продолжительности, что год может пройти. Это говорит вам заранее, количество дней в каждом месяце для подражания (для проверки ошибок во время ввода), разрешающий вход первого дня, возможно, придется тебя прикрывать если в следующем году не согласился с вашим участием - возможно, работает вход более сложных. Он также имеет важное значение с точки зрения формат календаря. См. также гик-Календарь, с его десятичной stardates.
Что касается компьютера, то она'ы, вероятно, использовать эпохи Unix. время, количество секунд, прошедших с 00:00:00 всемирного координированного времени (UTC), четверг, 1 января 1970 года, где каждый день считается, если он содержит ровно 86400 секунд. См. также Юлианский день. Формат ГГГГММДД просто предпочитают эгоцентричных людей, МАС рассматривает год как Юлианский год из 365,25 дня (31.5576 миллионов секунд), если не указано иное.
Еще одно применение Я'вэ видел это представление, что вы можете хранить даты в виде целых чисел (т. е. в базе), используя только 4 байта на каждую дату. Используя затем ГГГГММДД означает, что число сравнений (часто одной машине инструкцию) имеют тот же результат, сравнение с даты представлены. И он печатает умеренно человека-читаемо. И все это не требует какого-либо кода или специальной поддержке на всех, в любой другой среде программирования.
Если эти вещи большинство из того, что вам нужно сделать, с датами, и вам нужно сделать много, то этот формат имеет большое обращение.
По сравнению с датами в распространенных форматов, таких как ДД/ММ/гггг займет 10 байт в виде строки символов ASCII. ГГГГММДД строки уменьшить до 8 и получить на "сравнение представлений имеет тот же результат, что сравнение дат" и преимущество, но даже тогда, на основе строки, сравнения посимвольно, а не одно целое сравнение.
Же причине, что Луна сделана из зеленого сыра: это не так. В большинстве случаев формат по умолчанию какую-то локализованную строку. Иногда формат ISO используется, но обычно через дефис для лучшей читабельности.
ГГГГММДД
(или%Г%м%D
вфункцию strftime
просторечии) редко по умолчанию. Чтобы быть справедливым, я уверен, я видел его, но я не могу вспомнить прямо сейчас.Дата в Unix (GNU базовых утилит)
Выход:
Питон
выход:
С
Выход:
На C++
Дополнительная выгода не упомянул до сих пор, что желательно квантования (присвоение точное значение, как принадлежность к одной генеральной диапазон значений) относительно легко и быстро одну операцию..
Предположим, что вы'вновь пишу отчет, который суммирует события, такие как сумма и количество продаж. Дата продажи и времени хранится как YYYYMMDDHHMISS, вы просто должны держать левый 8 символов (если это's в строку) или деления целых чисел (т. е. пол) на 1000000, чтобы снизить datetime в день продажи.
Аналогично, если вы хотели в месяц's продаж, вы останетесь только в левом 6 цифр, или делить на 100,000,000
Конечно, вы можете возразить, что любое манипулирование строками можно, datetime для продажи "в 12-25-2018 12:34 вечера" и может быть substringed и манипулировать несколько раз, чтобы получить месяц и год. В числовой форме 122520181234 можно разделить и модом, и умножить, и разделить некоторые больше, и в итоге производят также месяц и год.. ..но код будет очень трудно писать, читать, поддерживать и понимать..
И даже опытные оптимизаторы базы данных может не быть в состоянии использовать индекс на столбце для предложения where, если дата ММ/ДД/гггг, но порезал и сложил вместе. Для сравнения, хранение ГГГГММДД представления и желая декабрь 2018 года ведет к тому, что положения Илька dateasstring как '201812%'
или dateasint между 20181200 и 20181299
- то индекс может использоваться дляТаким образом, если там'т специальный тип данных для даты и строковые/числовые представления был единственный выбор, использование и хранение раз в некоторое представление длинн-интервала-на-лево-на-кратчайшего интервала-на-право имеет несколько преимуществ для простоты понимания, манипулирования, хранения, поиска и код обслуживания