качество и надёжность с 2008 года

8 (800) 200-25-11

Техническая поддержка support@komtet.ru —

круглосуточно и без выходных дней

load-whois

Онлайн-касса

для интернет-магазина

Подключите ваш интернет-магазин

к онлайн-кассе в соответствии с 54-ФЗ

Главная Техническая библиотека Фреймворки Zope Использование модуля Zope DateTime

Использование модуля Zope DateTime

DateTime('2009/06/16') != DateTime('2009-06-16')

Будьте внимательнее при использовании преобразования строки даты с помощью модуля Zope DateTime.

Недавно я был удивлён некоторым отличием в способах, которыми модуль DateTime парсит строки дат в различном формате. Я то наивно полагал, что результаты не отличаются:

>>> from DateTime import DateTime
>>> DateTime('2009/06/16')
DateTime('2009/06/16')
>>> DateTime('2009-06-16')
DateTime('2009/06/16')

Вроде всё хорошо, но:

>>> DateTime('2009/06/16') == DateTime('2009-06-16')
False

Подождите ка... Как?!?

>>> DateTime('2009/06/16').rfc822()
'Tue, 16 Jun 2009 00:00:00 +0200'
>>> DateTime('2009-06-16').rfc822()
'Tue, 16 Jun 2009 00:00:00 +0000'

Как Вы видите, способ форматирования дат при обработке DateTime имеет значение: может добавляться часовой пояс (timezone) в результат. И это может испортить результаты запроса поиска в каталоге, если Вы используете слеши при сохранении содержимого и тире при запросах (или какой либо другой способ). Думаю, это где-то документировано, но зачем смотреть документацию, если теперь Вы "знаете" как это работает.

По материалам vlent.nl (Mark van Lent)

Перевод ООО «Комтет» komtet.ru

Акция от КОМТЕТ и TemplateMonster
Клиентам — домены в подарок!
Бесплатный тест виртуального хостинга
Перенос сайта — бесплатно
Все акции
На сайте КОМТЕТ используются cookie-файлы, данные о IP-адресе и местоположении посетителей. Если, прочитав это сообщение, вы остаетесь на нашем сайте, это означает, что вы не возражаете против использования этих технологий.