2010-11-29 101 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追溯到