使用不同的日期时间格式,日期时间和日期时间64进行计算

问题描述 投票:1回答:2

我想计算两个日期之间的天数:

第一次约会:

date = datetime.datetime.today() # {datetime} 2018-09-17 14:42:06.506541

第二个日期,从数据框中提取:

date2 = data_audit.loc[(data_audit.Audit == audit), 'Erledigungsdatum'].values[0]
# {datetime64} 2018-07-23T00:00:00.000000000

错误:

ufunc subtract不能使用类型为dtype('O')和dtype('M8 [ns]')的操作数

我的下一个尝试是:

date = np.datetime64(datetime.datetime.now()) # {datetime64} 2018-09-17T14:48:16.599541

这导致了以下错误(我将日期作为函数中的参数传递):

输入类型不支持ufunc'bitwise_and',并且输入无法根据强制转换规则“安全”安全地强制转换为任何支持的类型

我该如何处理这个问题?第二个似乎对我更合乎逻辑,但我不明白为什么我不能将一个简单的约会传递给一个函数。

python datetime datetime64
2个回答
0
投票

我相信这样的事情对你有用:

import datetime
import numpy as np

# earlier being of type datetime64
earlier = np.datetime64(datetime.datetime.today())
# Converting datetime64 to datetime
earlier = earlier.astype(datetime.datetime)
now = datetime.datetime.today()

print(now-earlier)

0
投票

让我们试试这种方法

import datetime
date  = datetime.datetime.today()
date2 = '2018-07-23'#here could be your date converted to proper type
date2 = datetime.datetime.strptime(date2, '%Y-%m-%d')
difference = date- date2
difference = difference.days

您也可以在数据框中将df.some_col_with_difference.astype('timedelta64[D]')应用于整列

© www.soinside.com 2019 - 2024. All rights reserved.