简体   繁体   English

两个日期函数之间的差异不起作用 Python

[英]Difference between two dates function not working Python

Difference between two date function taken from Python difference between two dates取自Python 两个日期之间差异的两个日期函数之间的差异

def days_between(d1, d2):
    d1 = datetime.strptime(d1, "%Y-%m-%d")
    d2 = datetime.strptime(d2, "%Y-%m-%d")
    return abs((d2 - d1).days)

Trying to return a String as strptime() argument 1 must be str, not Series试图返回一个字符串作为 strptime() 参数 1 必须是 str,而不是系列

date1 = list(map(lambda x: datetime.datetime(x,'%Y-%m-%d').strftime('%Y-%m-%d'), df['Date Created']))
date2 = list(map(lambda x: datetime.datetime(x,'%Y-%m-%d').strftime('%Y-%m-%d'), df['Date Completed']))

Result to print into new column of DateFrame结果打印到 DateFrame 的新列

result1 = days_between(date1, date2)

df['Days to Completion'] = result1
print(df.head())

Error given:给出的错误:

Traceback (most recent call last):
  File "C:\Users\ljvw6z\PycharmProjects\AnalysisTest1\dataset.py", line 54, in <module>
    date1 = list(map(lambda x: datetime.datetime(x,'%Y-%m-%d').strftime('%Y-%m-%d'), df['Date Created']))
  File "C:\Users\ljvw6z\PycharmProjects\AnalysisTest1\dataset.py", line 54, in <lambda>
    date1 = list(map(lambda x: datetime.datetime(x,'%Y-%m-%d').strftime('%Y-%m-%d'), df['Date Created']))
TypeError: an integer is required (got type Timestamp)

Based on the error you are getting, the map function requires an integer input instead of the timestamp format, what effectively needs to be done is you converting the datetime to integer first...根据您得到的错误,map 函数需要一个整数输入而不是时间戳格式,有效地需要做的是首先将日期时间转换为整数...

You can convert the datetime object to a timetuple, and then use the time.mktime function您可以将日期时间对象转换为时间元组,然后使用 time.mktime 函数

import time
from datetime import datetime
timestamp = int(time.mktime(datetime.now().timetuple()))

Then, Convert it back with:然后,将其转换回:

now = datetime.fromtimestamp(timestamp)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM