Python中的日期转换器

0 投票
2 回答
3919 浏览
提问于 2025-04-16 07:47
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 个回答

2

dateutil这个库可以帮你处理日期,非常好用。

你需要先用pip安装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日期。

4
  1. 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()
    

    如果你想用 date_string.split('/') 来分割 date_string,那么你需要把得到的字符串列表转换成整数列表。这是可以做到的,但会比必要的工作多。建议直接使用 datetime.datetime.strptime 来处理。

  2. 把所有的导入语句放在脚本的最上面,这样可以更容易理解这个脚本依赖了哪些东西。

  3. 一般来说,使用 if __name__=='__main__' 是个好习惯,这样你的脚本就可以被导入,而不会意外地运行里面的代码。这让你的脚本有双重用途——你可以从命令行运行它们,也可以导入它们来重用一些功能。

  4. 你可能还想看看一个第三方模块 dateutil——它有一个模糊日期解析器,可以处理很多不同的日期格式。

撰写回答