python中的日期转换器

时间:2010-11-29 20:38:57

标签: python

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的帮助将不胜感激我想让某人输入一个数字日期,程序将其转换为2010年11月15日的日期

2 个答案:

答案 0 :(得分: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 然后用date_string.split('/') 你必须转换列表 将字符串放入ints列表中。它的 可能,但比工作更多 必要。使用 datetime.datetime.strptime 代替。

  2. 将所有导入放在顶部 脚本。它使得理解脚本的依赖性变得更容易。

  3. 一般来说,这是一个好习惯 if __name__=='__main__'这样 你的脚本是可导入的(没有 无意中运行代码)。这个 使你的脚本具有双重目的 - 您可以从命令行以脚本的形式运行它们,也可以导入它们 他们重用功能。

  4. 您可能还想查看 第三方模块dateutil - 它有一个模糊的日期解析器,可以 处理多种格式。

答案 1 :(得分: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日期回来