我的情况是我应该忽略日期字符串中的时间戳。我已经尝试过以下命令,但没有运气。
"start" variable used below is in AbsTime (Ex: 01MAY2017 11:45) and not a string.
start_date = datetime.datetime.strptime(start, '%d%^b%Y').date()
print start_date
我的输出应该是:
01MAY2017或01MAY2017 00:00
任何人都可以帮助我。
答案 0 :(得分:5)
您的指示略有偏差,您需要捕获所有内容(无论您想要保留什么)。
start_date = datetime.datetime.strptime(start, '%d%b%Y %H:%M').date()
print start_date.strftime('%d%b%Y')
# '01May2017'
更新 - 在下面添加完整代码:
import datetime
start = '01MAY2017 11:45'
start_date = datetime.datetime.strptime(start, '%d%b%Y %H:%M').date()
print start_date.strftime('%d%b%Y')
# 01May2017
答案 1 :(得分:0)
https://docs.python.org/2/library/datetime.html
要将字符串转换回日期时间,我们可以使用strptime()
使用strptime()
的示例datetime.datetime.strptime('10Apr2017 00:00', '%d%b%Y %H:%M')
In [17]: datetime.datetime.strptime('10Apr2017 00:00', '%d%b%Y %H:%M')
Out[17]: datetime.datetime(2017, 4, 10, 0, 0)
使用strftime构建日期时间对象
使用now()的示例返回我们形成的字符串
的日期时间对象datetime.datetime.now().strftime('%d%b%Y')
In [14]: datetime.datetime.now().strftime('%d%b%Y')
Out[14]: '10Apr2017'
答案 2 :(得分:0)
试试这个
import datetime
start = '01MAY2017 11:45'
start_date = datetime.datetime.strptime(start, '%d%b%Y %H:%M')
print start_date.strftime('%Y-%m-%d')
答案 3 :(得分:0)
实际上,如果您不希望使用字符串并使用datetime对象本身,那么我最好的选择是使用相同的datetime
对象减去小时。
这是一个例子:
In [1]: date.strftime('%c')
Out[2]: 'Wed Jul 10 00:00:00 2019'
In [3]: date = datetime.datetime.utcnow()
In [4]: date.strftime('%c')
Out[5]: 'Wed Jul 10 19:06:22 2019'
In [6]: date = date - datetime.timedelta(hours = date.hour, minutes = date.minute, seconds = date.second) #Removing hours, mins,secs
In [7]: date.strftime('%c') #use
Out[8]: 'Wed Jul 10 00:00:00 2019'