0

我想以某种格式获取当前日期时间。还有比这更短的吗。

>>> import datetime
>>> datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
'2013-03-28 08:29:41'
4

4 回答 4

6

不,没有。但是您不必总是重复整个调用。例如:

>>> import datetime
>>> now = datetime.datetime.now
>>> now().strftime('%Y-%m-%d %H:%M:%S')
'2013-03-28 08:29:41'

如果你总是想要相同的格式,你也可以包装它:

import datetime
def now_string():
    return datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
于 2013-03-28T05:34:49.113 回答
4

把它放在某个函数中

import datetime
def my_now():
    return datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

您可以使用一些可选参数使其更灵活

import datetime
def my_now(the_time=None, fmt='%Y-%m-%d %H:%M:%S'):
    if the_time is None:
        the_time = datetime.datetime.now()
    return the_time.strftime(fmt)
于 2013-03-28T05:34:36.820 回答
2

如果这就是你想要的,那就这样吧。但是请不要因为这样的黑客代码而责备我:-)

>>> import datetime
>>> str(datetime.datetime.now())[:19]
'2013-03-28 15:57:31'

字符数 32 :-)

于 2013-03-28T05:38:14.610 回答
0

由于您的格式字符串接近默认格式,您只需要摆脱微秒:

import datetime
str(datetime.datetime.now().replace(microsecond = 0))
于 2013-03-28T08:04:15.627 回答