Краткий ответ: нет. В то время как datetime
выводит в этом непротиворечивом формате, кажется, что у модуля нет тривиального способа считывания того же формата обратно (например, константа строки формата). Более того, strptime()
не имеет значения по умолчанию для аргумента формата, поэтому мы должны указать его. Однако сделать это очень просто:
x = str(datetime.datetime.utcnow())
dt = datetime.datetime.strptime(x, "%Y-%m-%d %H:%M:%S:%f")
, и вы могли бы легко превратить эту строку формата в константу, которую вы используете в своей программе (и это хорошо закодировать - этот формат стандартный, он не изменится):
utc_format = "%Y-%m-%d %H:%M:%S:%f"
...
dt = datetime.datetime.strptime(x, utc_format)
Теоретически вы также можете использовать срезы строк или регулярные выражения для явного извлечения года, месяца, дня и т. Д., Но тогда вам все равно придется вручную создавать объект datetime из всего этого, и нет веских причин для этого. через беду, когда существует дата и время. Я не верю, что в стандартной библиотеке есть что-то еще, что может сделать это лучше.