如何使用时间戳仅比较日、月和年?

问题描述

如果两个日期具有相同的日期而不管时间戳如何,我们如何比较它们?

例如:

date1 = 1508651293229
date2 = 1508651293220

date1 = datetime.fromtimestamp(int(date1) / 1e3)
date2 = datetime.fromtimestamp(int(date2) / 1e3)

if(date1 == date2):
  print(True)

但这会检查包括时间在内的全天戳记,而我只想检查日、月和年。

我尝试了一些文档,但找不到太多相关的内容

解决方法

试试:

if date1.date() == date2.date():
    print('True')

# and indeed,they are:
True
,

datetime.datetime 实例有一个 date 方法,它返回一个 datetime.date 对象,忽略原始值的时间。

if date1.date() == date2.date():

如果您不关心时间,也可以直接创建 datetime.date 实例,因为 datetime.date.fromtimestamp 也存在。

date1 = datetime.date.fromtimestamp(date1 // 1000)
,

datetime.date() 返回具有相同年月日的日期对象

在你的情况下,你应该使用:

if(date1.date() == date2.date()):
  print(True)

您也可以通过简单的操作来缩短此时间

print(date1.date() == date2.date())