python中如何比较两个时间点-关于python:如何比较两个日期?

我将如何比较两个日期,以确定哪一个是以后的,使用python?

例如,我想检查当前日期是否超过我正在创建的列表中的最后一个日期,假日日期,以便它自动发送电子邮件,告诉管理员更新holiday.txt文件。

运算符,就像其他比较一样。

你用原型int compare_dates(void const *, void const*)写入函数,并实现逻辑比较。它可能不是一只Python。

@Larsmans:对不起任何语言/任何语言/任何使用不合理语言的人,都应在文件处理期间花费几分钟的时间,并尝试输出日期

Docs.python.org/Library/datetime.html 350;datetime-objects Ctrl-F search for"supported operations"

@Fred Foo this question is about Python,not C.

@Galaxy-he"s using an analogy,to show what should be simple to a seasoned person might not be simple to a total beginner and he"s using C to implicate this.他不认为这个问题是关于C.他是对的,我在8年前就提出这个问题时是一个完全的开始,而且他也不知道如何处理这个问题。

是的,我同意弗雷德的模拟帮助。我是个好人,但在Python,我在你8年前的同一个阶段。注:

使用datetime方法和操作符<及其亲属。

1

2

3

4

5

6

7

8

9>>> from datetime import datetime, timedelta

>>> past = datetime.now() - timedelta(days=1)

>>> present = datetime.now()

>>> past < present

True

>>> datetime(3000, 1, 1) < present

False

>>> present - datetime(2000, 4, 4)

datetime.timedelta(4242, 75703, 762105)

如果有人想知道的话,这也适用于时区感知值。

past和present有什么不同?我不能理解你的例子,而且它的结果没有意义。

@emadpres:假设这是手动输入的。前一行是第一行,而现在的行是第二行…所以前一行是先输入的,所以过去

@Matgessel这是否意味着,如果这两个日期来自不同的时区,那么在比较这些值之前,它将理解这一点并将它们转换为任何一个公共时区?如果是,那真的很酷。

好的,快速搜索医生给了我答案。在比较之前,它实际上调整了不同的时区。

引用文档中的话:"如果一个比较程序是幼稚的,而另一个比较程序意识到了这一点,则在尝试进行订单比较时会引发类型错误。对于平等比较,天真的实例永远不等于有意识的实例。如果两个比较方都知道并且具有相同的TZINFO属性,则忽略公共TZINFO属性并比较基准日期时间。如果两个比较数都知道并且具有不同的TZINFO属性,则首先通过减去它们的UTC偏移量(从self.utcoffset()获得)来调整比较数。"

变量名应该是past和past_but_a_little_after。从技术上讲,当比较past < present时,present也在过去。

使用time。

假设您的初始日期是这样的字符串:埃多克斯1〔9〕埃多克斯1〔10〕

您可以执行以下操作:newdate1 = time.strptime(date1,"%d/%m/%Y")和newdate2 = time.strptime(date2,"%d/%m/%Y")将它们转换为python的日期格式。然后,比较明显:newdate1 > newdate2返回False。newdate1 < newdate2返回True。

datetime.date(2011, 1, 1) < datetime.date(2011, 1, 2)将返回True。

datetime.date(2011, 1, 1) - datetime.date(2011, 1, 2)将返回datetime.timedelta(-1)。

datetime.date(2011, 1, 1) + datetime.date(2011, 1, 2)将返回datetime.timedelta(1)。

请参阅文档。

对于计算两个日期差中的天数,可以按如下方式进行:

1

2

3

4

5

6

7

8

9

10

11

12import datetime

import math

issuedate = datetime(2019,5,9) #calculate the issue datetime

current_date = datetime.datetime.now() #calculate the current datetime

diff_date = current_date - issuedate #//calculate the date difference with time also

amount = fine #you want change

if diff_date.total_seconds() > 0.0: #its matching your condition

days = math.ceil(diff_date.total_seconds()/86400) #calculate days (in

one day 86400 seconds)

deductable_amount = round(amount,2)*days #calclulated fine for all days

因为如果一秒钟比到期日长,我们就得收费

其他使用datetime和比较的答案也只在时间上有效,没有日期。

例如,要检查现在是早8点还是早8点,我们可以使用:

1

2

3import datetime

eight_am = datetime.time( 8,0,0 ) # Time, without a date

稍后与以下内容进行比较:

1datetime.datetime.now().time() > eight_am

返回True。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值