如何在Python / Pandas中将变量设置为“今天”日期

时间:2014-02-12 20:10:40

标签: python date datetime formatting pandas

我正在尝试将变量设置为等于今天的日期。

我查了一下,发现了一篇相关的文章:

Set today date as default value in the model

然而,这并没有特别回答我的问题。

我使用了建议:

dt.date.today

之后
import datetime as dt     
date = dt.date.today
print date
 <built-in method today of type object at 0x000000001E2658B0>

 Df['Date'] = date

我没有得到我真正想要的东西作为今天日期的干净日期格式......在月/日/年。

如何创建今天的变量以便我在DataFrame中输入该变量?

9 个答案:

答案 0 :(得分:54)

你提到你正在使用熊猫(在你的标题中)。如果是这样,则无需使用外部库,您只需使用to_datetime

即可
>>> pandas.to_datetime('today')
Timestamp('2015-10-14 00:00:00')

这将始终返回今天午夜的日期,无论实际时间如何(但猜猜论证now将会做什么)。

答案 1 :(得分:42)

如果您想要字符串mm/dd/yyyy而不是datetime对象,则可以使用strftime(字符串格式时间):

>>> dt.datetime.today().strftime("%m/%d/%Y")
                   # ^ note parentheses
'02/12/2014'

答案 2 :(得分:7)

使用pandas:pd.Timestamp("today").strftime("%m/%d/%Y")

答案 3 :(得分:3)

我遇到了同样的问题所以尝试了很多东西 但最后这是解决方案。

import time 

print (time.strftime("%d/%m/%Y"))

答案 4 :(得分:2)

Python3 +中的简单解决方案:

import time


todaysdate = time.strftime("%d/%m/%Y")

#with '.' isntead of '/'
todaysdate = time.strftime("%d.%m.%Y")

答案 5 :(得分:2)

import datetime
def today_date():
    '''
    utils:
    get the datetime of today
    '''
    date=datetime.datetime.now().date()
    date=pd.to_datetime(date)
    return date
Df['Date'] = today_date()

这可以安全地用于pandas数据帧。

答案 6 :(得分:1)

  

pd.datetime.now()。strftime(“%d /%m /%Y”)

这将输出为'11 / 02/2019'

如果需要,您可以使用添加时间

  

pd.datetime.now()。strftime(“%d /%m /%Y%I:%M:%S”)

这将输出为'11 / 02/2019 11:08:26'

strftime formats

答案 7 :(得分:0)

您还可以查看pandas.Timestamp,其中包括.now.today之类的方法。 与pandas.to_datetime('now')不同,pandas.Timestamp.now()不会默认为UTC:

  import pandas as pd

  pd.Timestamp.now() # will return California time
  # Timestamp('2018-12-19 09:17:07.693648')

  pd.to_datetime('now') # will return UTC time
  # Timestamp('2018-12-19 17:17:08')

答案 8 :(得分:0)

已经有很多不错的答案,但要回答关于“任何”时期的更普遍的问题:

在熊猫中使用 function for time periods。对于日,使用“D”,对于“M”月等:

>pd.Timestamp.now().to_period('D')
Period('2021-03-26', 'D')

>p = pd.Timestamp.now().to_period('D')
>p.to_timestamp().strftime("%Y-%m-%d")
'2021-03-26'

注意:如果需要考虑UTC,可以使用:pd.Timestamp.utcnow().tz_localize(None).to_period('D')...