Python 字符串的最新格式

Python 字符串的最新格式,python,datetime,Python,Datetime,我有以下格式的字符串: x='2018-02-15-11' 我需要将其转换为日期格式。我试过: from datetime import date from datetime import time from datetime import datetime dhs = '2018-02-15-11' x = datetime.strptime(dhs, '%Y-%M-%d-%H') print x 然而,输出是有限的 2018-01-15 11:02:00 我需要以下格式的输出(作为日期

我有以下格式的字符串: x='2018-02-15-11'

我需要将其转换为日期格式。我试过:

from datetime import date
from datetime import time
from datetime import datetime

dhs = '2018-02-15-11'
x = datetime.strptime(dhs, '%Y-%M-%d-%H')
print x
然而,输出是有限的

2018-01-15 11:02:00
我需要以下格式的输出(作为日期对象):


我在这里遗漏了什么吗?

我想您可能有错误,您使用了
%Y-%M-%d-%H
,其中
%M
表示分钟,而不是月份。但根据外观,它应该是
%m
,即月份

回答原始问题时,
strftime
(datetime to string)和
strftime
(string to datetime)的格式说明符是相同的。因此,您可以使用
datetime.datetime.strftime(“%Y-%m-%d-%H”)
类似于:

In [47]: dhs = '2018-02-15-11'
    ...: x = datetime.datetime.strptime(dhs, '%Y-%m-%d-%H')
    ...: print(x.strftime('%Y-%m-%d-%H'))
    ...: 
2018-02-15-11
我在这里使用了
%m
而不是
%m
。如果您确实确定这一点,如果需要,请使用
%M


注意:您得到的字符串与您开始使用的字符串相同。

M
是分钟,月份默认为
1
,因为您没有指定它。您的字符串不是以
'2018-02-15-11'
开头吗?为什么需要转换它?请尝试将%H更改为%k
In [47]: dhs = '2018-02-15-11'
    ...: x = datetime.datetime.strptime(dhs, '%Y-%m-%d-%H')
    ...: print(x.strftime('%Y-%m-%d-%H'))
    ...: 
2018-02-15-11