的時候,我有這樣的代碼:如何只打印日期和不包括datetime.datetime.strptime()
>>> import datetime
>>> l = '2011-12-02'
>>> t = datetime.datetime.strptime(l, '%Y-%m-%d')
>>> print t
2011-12-02 00:00:00
我的問題是,可能只有2011-12-02
將被打印出來?
的時候,我有這樣的代碼:如何只打印日期和不包括datetime.datetime.strptime()
>>> import datetime
>>> l = '2011-12-02'
>>> t = datetime.datetime.strptime(l, '%Y-%m-%d')
>>> print t
2011-12-02 00:00:00
我的問題是,可能只有2011-12-02
將被打印出來?
>>> t.strftime('%Y-%m-%d')
'2011-12-02'
有沒有辦法讓它不會成爲字符串? – gadss
@gadss:* huh!?*您不能以任何方式使用*,但在格式化時需要一個字符串。你什麼意思? –
隨着strftime()
:
print t.strftime('%Y-%m-%d')
'time.strftime'實際上是格式第一,時間第二,時間實際上不是'datetime'(我們的OP有),而是'struct_time'。他應該在'datetime'模塊中使用'strftime'。 –
我在*時間前編輯了我的答案。代碼正常工作,因爲我在回答之前測試了它。如果您對鏈接感到困惑,抱歉。我用它作爲語法的一個例子,而不是實際的功能...... – Blender
你最初寫的代碼肯定不起作用,你可以責怪SO的顯而易見的最終一致性模型,爲什麼我的答案的觀點從來沒有更新,而我可以看到你的新評論。 –
我想你應該這樣
d = datetime.datetime(2011,7,4)
print '{:%Y-%m-%d}'.format(d)
或代碼中使用:
import datetime
l = '2011-12-02'
t = datetime.datetime.strptime(l, '%Y-%m-%d')
print '{:%Y-%m-%d}'.format(t)
你必須指定輸出格式日期,例如通過使用後,「%」
print t.strftime("%Y-%m-%d")
所有字母代表的格式:%d是天數,%M是月份數,%y是今年最後兩位數字,%Y是所有一年
順便說一句,你真的在尋找如何從'datetime'的實例獲取格式化的字符串。 'strptime'函數只需要一個字符串並給你一個新的'datetime'實例。瞭解這種差異將有助於你在未來完成類似的事情。 –