从Python中的日期字符串中删除时间戳

时间:2017-04-10 06:53:12

标签: python datetime

我的情况是我应该忽略日期字符串中的时间戳。我已经尝试过以下命令,但没有运气。

"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

任何人都可以帮助我。

4 个答案:

答案 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'