Python DateUtil Преобразование строки в дату и время

#python #pyodbc #python-dateutil

#python #pyodbc #python-dateutil

Вопрос:

Я пытаюсь преобразовать параметр типа string в дату и время. Я использую библиотеку dateUtil

   from dateutil import parser
myDate_string="2001/9/1 12:00:03"
dt = parser.parse(myDate_string,dayfirst=True)
print dt
  

каждый раз, когда я запускаю это, я получаю

2001-09-01 12:00:03

независимо от того, установлен ли у меня dayfirst как true или Year first как false. В идеале я просто хочу иметь дату в формате ДД-ММ-ГГГГ ЧЧ: ММ: СС. Я не хочу ничего необычного. Я готов использовать библиотеку datetime, но, похоже, это вообще не работает для меня. Может ли кто-нибудь дать простые примеры того, как преобразовать строки в дату и время с явным форматом, я новичок, поэтому мне нужны только самые простые примеры. Я использую Python 2.7

Ответ №1:

Проблема, с которой вы сталкиваетесь, заключается в том, что любые аргументы, которые вы передаете parser.parse, влияют только на то, как анализируется строка, а не на то, как печатается последующий объект.

parser.parse возвращает объект datetime — при его печати он будет просто использовать метод datetime по умолчанию __str__ . Если вы замените последнюю строку на

 print dt.strftime("%d-%m-%Y %H:%M:%S")
  

это будет работать так, как вы ожидаете.

Ответ №2:

Стандартная (встроенная) datetime библиотека lib может сделать это легко.

 from datetime import datetime

my_date_string = "2001/9/1 12:00:03"
d = datetime.strptime(my_date_string, "%Y/%m/%d %H:%M:%S")
print d.strftime("%d-%m-%Y %H:%M:%S")
  

Комментарии:

1. Спасибо. Я был разочарован этим. Ваше решение в целом наиболее подходит для моего варианта использования. Однако приведенный ниже ответ содержит более точные ответы с использованием библиотеки dateutil. Тем не менее, спасибо.