2015-06-04 6 views
3

можно преобразовать заданную строку даты отформатированную в YYYY-MM-DD к datetime объекту с помощью:Как преобразовать строку даты в объект даты и времени в определенном часовом поясе

from datetime import datetime 
dt = datetime.strptime(date_str, '%Y-%m-%d') 

Однако, это использует часовой пояс текущих машин по умолчанию.

Есть ли способ указать конкретный часовой пояс (например, UTC, PST и т. Д.) В преобразовании, чтобы полученный объект datetime находился в этом часовом поясе.

Я пытаюсь сделать это в Python 3.4.3.

+0

возможно дубликат [Python] преобразования временной зоны (http://stackoverflow.com/questions/10997577/python-timezone-conversion) –

+0

см. Http://stackoverflow.com/questions/10997577/python-timezone-conversion –

+0

Если вы хотите использовать часовой пояс, кроме UTC, тогда вы должны прочитать это http://stackoverflow.com/a/117615 –

ответ

3

Это невозможно, используя только стандартную библиотеку Python.

Для полной гибкости установки python-dateutil и pytz и запуск:

date_str = '2015-01-01' 
dt = pytz.timezone('Europe/London').localize(dateutil.parser.parse(date_str)) 

Это дает вам DateTime с Europe/London часовой пояс.

Если нужно только разбор '%Y-%m-%d' строк, то вам нужно только pytz:

from datetime import datetime 
naive_dt = datetime.strptime(date_str, '%Y-%m-%d') 
dt = pytz.timezone('Europe/London').localize(naive_dt) 
Смежные вопросы