![](/img/trans.png)
[英]How to convert a date format (YYYY-MM-DD) to (YYYY,MM,DD) in Python
[英]How to convert from mm/dd/yyyy format to yyyy-mm-dd in python 3.0 when given 1/4/2014
所以我一般都明白如果給出的初始日期是01/04/2014,我將如何從mm / dd / yyyy格式轉換為yyyy-mm-dd。 但是我只給了1/4/2014(沒有零)。 有沒有一種干凈,更有效的方法在python 3中轉換它而不是寫一堆if語句?
>>> from datetime import datetime
>>> date = datetime.strptime("1/4/2014", "%m/%d/%Y")
>>> datetime.strftime(date, "%Y-%m-%d")
'2014-01-04'
from datetime import datetime
date = datetime.strptime("1/4/2014", "%m/%d/%Y")
print(datetime.strftime(date, "%Y-%m-%d"))
'2014-01-04'
Abdou建議使用datetime模塊是最好的,因為您可以獲得datetime對值的完整性檢查的好處。 如果您只想使用字符串操作,那么請注意,在調用字符串的rjust方法時,您可以提供填充字符:
>>> "1".rjust(2,"0")
'01'
所以:
>>> x = "1/4/2345"
>>> f = x.split("/")
>>> f[2] + "-" + f[0].rjust(2,"0") + "-" + f[1].rjust(2,"0")
'2345-01-04'
假設您不需要驗證輸入日期,則不需要任何if
語句或日期處理函數:您可以使用字符串.split
和.format
方法完成所有操作。
def us_date_to_iso(us_date):
return '{2}-{0:>02}-{1:>02}'.format(*us_date.split('/'))
# test
for s in ('1/4/2014', '1/11/1999', '31/5/2015', '25/12/2016'):
print(s, us_date_to_iso(s))
產量
1/4/2014 2014-01-04
1/11/1999 1999-01-11
31/5/2015 2015-31-05
25/12/2016 2016-25-12
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.