2013-03-28 42 views
0

我想以某種格式獲取當前日期時間。有沒有比這更短的東西。較短版本的now()

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

爲什麼?你在寫代碼高爾夫嗎? – 2013-03-28 05:33:58

+0

您可以創建一個函數,而不是每次調用此函數 – JBernardo 2013-03-28 05:34:49

+0

投票以將其關閉作爲其主題。適用於http://codegolf.stackexchange.com/。 – Abhijit 2013-03-28 05:43:54

回答

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') 
+0

然後把它存儲在一個字符串中(或者寫一個函數)。 – Amber 2013-03-28 05:36:15

+0

解決了這個問題 – 2013-03-28 05:39:35

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) 
2

如果這是你想要的,就這樣吧。但是,請不要怪我對這樣的hackish的代碼:-)

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

任何字符32 :-)

+0

'str(datetime.datetime.now())。split('。')[0]'是42 ... +1 – dawg 2013-03-28 06:39:38

0

當你的格式字符串的接近默認的格式,你只需要擺脫微秒:

import datetime 
str(datetime.datetime.now().replace(microsecond = 0))