如何在python中将日期转换为日/月/年(2012年1月20日)

2024-06-28 15:58:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个脚本,我需要更改日期,当脚本运行时,它输出此消息

output_messaging("*** DATA REFRESH FOR STREETWORKS DATA EXECUTED ON " + 
    str(datetime.date.today().day) + "/" + str(datetime.date.today().month) + "/" +            
    str(datetime.date.today().year) + " AT " + str(datetime.datetime.now().hour) + ':' +   
    str(datetime.datetime.now().minute) + ':' + str(datetime.datetime.now().second) + " ***\n\n")

这给了

^{pr2}$

我需要把日期转换成

20/Feb/2012,我该怎么做?在


Tags: 脚本消息foroutputdatatodaydatetimedate
3条回答
>>> from datetime import date
>>> day = date.today()
>>> day.strftime('%d/%b/%y')
'28/Feb/12'
output_messaging("*** DATA REFRESH FOR STREETWORKS DATA EXECUTED ON {0:%d/%b/%Y} AT {0:%H:%M} ***".format(datetime.datetime.now()))

印刷品

^{pr2}$

More information about datetime formatting

使用strftime来实现这一点——这比执行一堆自定义连接要容易得多。有一个格式惯例表here。在

>>> s = "*** DATA REFRESH FOR STREETWORKS DATA EXECUTED ON "\
...     "%d/%b/%y AT %H:%M:%S ***\n\n"
>>> datetime.datetime.now().strftime(s)
'*** DATA REFRESH FOR STREETWORKS DATA EXECUTED ON 28/Feb/12 AT 11:44:03 ***\n\n'

正如eumiro的答案所示,您还可以使用稍微修改的格式字符串来反转上面的调用,如下所示:

^{pr2}$

这是因为format只是调用了datetime.datetime对象的__format__方法(令人震惊的是,文档记录不足)。例如:

>>> datetime.datetime.now().__format__('The current month is %B')
'The current month is February'

这也适用于其他类型:

>>> (16).__format__('x')
'10'

有关__format__的更多信息,请参见PEP 3101

相关问题 更多 >