2010-11-29 104 views
0
def main(): 
    print "Welcome To the Date Converter" 
    print "Please Enjoy Your Stay" 
    print 
    date_string = raw_input("Please enter a date in MM/DD/YYYY format: ") 
    date_list = date_string.split('/') 
    import datetime 
    d = datetime.date 
    d.strftime('%B %d, %Y') 

main() 

這是我到目前爲止我一直在幫助輸出得到一個0,將不勝感激,我想有一個人輸入的數字日期和程序將其轉換爲一個日期像11月15日,2010日期轉換

+0

我沒有,但它想出了.. – 2010-11-29 20:45:07

回答

4
import datetime 
def main(): 
    print "Welcome To the Date Converter" 
    print "Please Enjoy Your Stay" 
    print 
    date_string = raw_input("Please enter a date in MM/DD/YYYY format: ") 
    d=datetime.datetime.strptime(date_string,'%m/%d/%Y') 
    print(d.strftime('%B %d, %Y')) 

if __name__=='__main__': 
    main() 
  1. 如果你嘗試用date_string.split('/')分裂date_string ,然後 你必須 字符串列表轉換成的ints列表。它可能是 ,但需要比 更多的工作。改爲使用 datetime.datetime.strptime

  2. 將所有進口放在 腳本的頂部。它使得它更容易理解腳本的依賴關係。

  3. 在一般情況下,它是用一個良好的習慣 if __name__=='__main__',使 你的腳本導入的(不 不經意間運行的代碼)。這 使您的腳本雙重目的 - 您可以從命令行運行它們作爲腳本,還可以導入 他們重用函數。

  4. 您可能還需要檢查出 第三方模塊dateutil - 它有一個模糊的日期解析器可以 處理多種格式。
2

dateutil的解析器是你的朋友。

你必須點子安裝dateutil但你已經安全袋的日期轉換代碼包:

pip install python-dateutil 

您可以使用它像這樣。

from dateutil import parser 
ds = '2012-03-01T10:00:00Z' # or any date sting of differing formats. 
date = parser.parse(ds) 

ds = '12/23/2001' # or any date sting of differing formats. 
date = parser.parse(ds) 

你會發現你可以處理幾乎任何日期字符串格式與此解析器,你會得到一個很好的標準Python追溯到