【问题标题】:Python: Calculate number of days between two dates in different formats?Python:计算不同格式的两个日期之间的天数?
【发布时间】:2020-07-25 23:40:03
【问题描述】:

如何使用 Python 计算 2006/09/21 和 2008-12-27 之间的天数?注意:两个日期的格式不同。

【问题讨论】:

    标签: python python-3.x pandas


    【解决方案1】:

    您可以使用标准库中的datetime

    import datetime
    
    dt1 = datetime.datetime.strptime("2008-12-27", "%Y-%m-%d")
    dt2 = datetime.datetime.strptime("2006/09/21", "%Y/%m/%d")
    
    (dt1 - dt2).days  # 828
    

    【讨论】:

      【解决方案2】:

      由于问题已在其中标记pandas

      In [30]: import pandas as pd
      
      In [31]: d1 = pd.to_datetime("2006/09/21", format="%Y-%m-%d")
      
      In [32]: d2 = pd.to_datetime("2008-12-27", format="%Y/%m/%d")
      
      In [33]: (d2 - d1).days
      Out[33]: 828
      

      【讨论】:

      • 如果 OP 需要使用其他格式,这将不起作用。在美国,标准格式是“mm/dd/yyyy”,而在英国和印度,标准格式是“dd/mm/yyyy”。
      • 但是 OP 说他需要什么格式对吧?而且 pandas 的 datetime 足以解析它
      【解决方案3】:

      我建议使用datetime.strptime() 函数将这些字符串中的每一个转换为日期时间对象。试试下面的代码:

      import datetime
      
      d1 = '2006/09/21'
      d2 = '2008-12-27'
      
      #convert strings to datetime objects
      d1_converted = datetime.datetime.strptime(d1,'%Y/%m/%d')
      d2_converted = datetime.datetime.strptime(d2,'%Y-%m-%d')
      
      #difference between two dates in days
      (d2_converted - d1_converted).days #output is '828'
      

      阅读文档以获取有关格式化其他字符串的更多信息:https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-26
        • 2019-09-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多