Я пытаюсь сохранить временные метки с часовыми поясами, и мне нужен шаблон регулярных выражений, чтобы сделать это правильно. Формат иллюстрируется с помощью приведенных ниже примеров:
2014-12-01 17:15:52
2014-12-01 17:15:52.213121
2014-12-01 17:15:52 Africa/Cairo
2014-12-01 17:15:52.213121 Africa/Cairo
Все действительные метки времени. Другими словами, точность микросекунд необязательна, как и часовой пояс. Часовой пояс можно рассматривать как строку. Пока что у меня есть следующая схема:
r'^\d\d\d\d-(0?[1-9]|1[0-2])-(0?[1-9]|[12][0-9]|3[01]) (00|[0-9]|1[0-9]|2[0-3]):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9])*$'
Это хорошо для хранения только необходимой части, то есть без точности микросекунд и часового пояса. Я немного растерялся, как к этому подойти.
Должен ли я использовать |
и иметь там все паттерны, один с микросекундами без часового пояса, один с часовым поясом без микросекунд, один без обоих, один с обоими?
Спасибо за любую помощь.
Примечание. Поскольку кто-то неизбежно собирается это затронуть, я полностью понимаю, что один шаблон регулярного выражения не может проверить дату и время. Я намерен использовать этот шаблон, чтобы разделить строку, и проверить каждую из этих частей, чтобы убедиться, что отметка времени действительна или нет. Поэтому, пожалуйста, без комментариев или ответов, упоминающих эту деталь.