【问题标题】:Time difference with different time formats in Python3Python3中不同时间格式的时差
【发布时间】:2017-05-24 13:31:07
【问题描述】:

您好,我有两次格式略有不同,我需要找出差异。第一个是使用 dateutil.parser 从 ISO 8601 日期解析的

我不确定我需要做什么才能将它们解析为相同的格式,但我的两个日期是:

2017-05-24 15:40:00+00:00
2017-05-24 14:23:44.995015

如果它们都是日期时间格式,我可以从另一个中减去一个,所以我需要将两者都去掉毫秒(因为这与我无关),并告诉 python 新字符串都是日期时间?

【问题讨论】:

    标签: python datetime python-3.5 python-dateutil


    【解决方案1】:

    既然您已经在使用 dateutil,那么仅删除时区(或将其添加到另一个时区)并减去它们有什么问题?

    import dateutil.parser
    
    date1 = dateutil.parser.parse("2017-05-24 15:40:00+00:00").replace(tzinfo=None)
    date2 = dateutil.parser.parse("2017-05-24 14:23:44.995015")
    
    date_delta = date1 - date2  # 1:16:15.004985
    

    您可以在约会时致电replace(microsecond=0) 以删除微秒。

    【讨论】:

      【解决方案2】:

      您可以使用以下代码将第二个日期时间(即时间戳)转换为第一个:

      def convert_to_timestamp(string_date):
          the_datetime = datetime.strptime(string_date.decode("utf-8"), "%Y%m%d.%H%M%S.%f")
          return time.mktime(the_datetime.timetuple()) * 1e6 + the_datetime.microsecond
      

      或:

      def transformTimestamps(timestamp_):
      year = timestamp_[:4]
      month = timestamp_[4:6]
      day = timestamp_[6:8]
      hour = timestamp_[9:11]
      minute = timestamp_[11:13]
      second = timestamp_[13:15]
      microsecond = timestamp_[16:22]
      myformat = year+"-"+month+"-"+day+" +hour+":"+minute+":"+second+":"+microsecond
      return datetime.strptime(myformat, '%Y-%m-%d %H:%M:%S:%f')
      

      然后,您可以计算它们之间的差异。

      我希望这会有所帮助。问候!

      【讨论】:

        【解决方案3】:

        可能你想用这个方法

        datetime.strptime(date_string, 格式)

        还请记住,当您声明指定日期时,您可以在日期中删除不需要的元素(例如毫秒),如

        class datetime.datetime(年月日时=0,分=0,秒=0, 微秒=0, tzinfo=None, *, fold=0)

        有关此主题的更多信息,您可以随时阅读 python 文档,您可以在此处找到我刚刚提供给您的相同信息以及更多信息: https://docs.python.org/3/library/datetime.html

        希望对您有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多