精华内容
下载资源
问答
  • python比较日期大小
    万次阅读
    2019-11-09 14:09:29

    比较大小

    def date_compare(date1, date2, fmt='%Y-%m-%d') -> bool:
        """
        比较两个真实日期之间的大小,date1 > date2 则返回True
        :param date1:
        :param date2:
        :param fmt:
        :return:
        """
    
        zero = datetime.datetime.fromtimestamp(0)
    
        try:
            d1 = datetime.datetime.strptime(str(date1), fmt)
        except:
            d1 = zero
    
        try:
            d2 = datetime.datetime.strptime(str(date2), fmt)
        except:
            d2 = zero
        return d1 > d2
    
    

    直接比较大小。

    更多相关内容
  • 本文作者:胡 婧文字编辑:杨慧琳技术总编:张学人好消息!!!爬虫俱乐部将于2019年7月5日至7月8日在武汉举行首期Python...详细培训大纲及报名方式,请点击文末阅读原文呦~Python中用于处理日期和时间的模块包括tim...

    本文作者:胡   婧

    文字编辑:杨慧琳

    技术总编:张学人

    好消息!!!爬虫俱乐部将于2019年7月5日至7月8日在武汉举行首期Python编程技术定制培训。本次培训采用理论与案例相结合的方式,旨在帮助零基础学员轻松入门Python,由浅入深学习和掌握Python爬虫技术,并明确未来更进一步的学习方向。

    详细培训大纲及报名方式,请点击文末阅读原文呦~

    Python中用于处理日期和时间的模块包括time、datetime和calendar。在之前的推文中《Python之time模块详解》详细的介绍了time模块的相关内容,即主要处理的是时间类数据,例如时、分、秒等相关信息。今天小编将为大家介绍datetime模块的基本用法。datetime模块可处理时间、日期等数据,是date和time模块的集合,其总共定义6类:datetime.date、datetime.time、datetime.datetime、datetime.timedelta、datetime.tzinfo、datetime. timezone。tzinfo、timezone为时区类相关处理模块,本文不做过多讲解,而主要介绍前四类内容。

    0. 前 言

    在开始介绍datetime模块之前,先讲一下该模块下date、time以及datetime三个类的区别和联系。正如其表面意思一样,date是对日期进行处理,其最小的单位是天数;time是对时间进行处理,其最小的单位是微秒(一百万分之一秒);datetime则是上两个类的合集,其最小的单位是微秒,但是其必须包含日期的参数,可以省略时间的参数(省略的参数默认为0)。time不可以进行时间的加减运算,而datetime类和date类则可以结合timedelta进行时间以及日期的加减运算。当datetime省略时间的参数时,看起来和date表示出来的结果一致,实际上两者在时间加减运算时的精度不一致。具体区别,可以通过以下程序输出的结果进行比较:

    import datetimea1=datetime.time(8,12,4,3)a2=datetime.time(8) #其他参数省略时默认为0a1>a2b=datetime.date(2019,6,10)print(b.toordinal())print(b.timetuple())c1=datetime.datetime(2019,6,10)c2=datetime.datetime.today()print(c1.toordinal(),c2.toordinal())print(c1.timetuple(),c2.timetuple())   #c1和c2的时间戳看起来一样,但是时间元组不同delta=datetime.timedelta(days=1,hours=2,minutes=3,seconds=4) newb=b+deltanewc=c1+deltaprint(newb,newc) 

    其中newb只比b增加了1天,因为date类时间的最小单位为天数,所以delta中的小时,分钟,秒钟在与date类时间相加时自动忽略掉。而newc则是比c1增加了一天零2小时3分4秒。

    cd817fe7a326dba8caff667ea0fe0731.png

    128b356129a3dac3121d954f25ecc17e.png

    1.  datetime.date

    datetime.date用于对于日期的处理,其中有三个参数:year、month、day。其中想要获取当前日期,以及返回当前日期的年、月、日,程序如下所示:

    import datetimea=datetime.date.today()print(a.year)print(a.month)print(a.day)

    ff40571a1148c2b6afec4d495b78f4d8.png

    同时,我们还可以改变日期的格式,将其变成时间戳或是时间元组格式。程序如下:

    a.toordinal() #变为时间戳a.timetuple() #变为时间元组a.timetuple().tm_year #返回其中的年份a.__str__() #简单的获得日期的字符串a.strftime("%Y%m%d") #将日期以指定的形式输出a.__format__('%Y-%m-%d')a.ctime()

    25e151d052f8c66e834e644d8f555796.png

    这里可以注意到,当将其转换为时间元组时,会自动生成小时、分钟、秒钟的参数,并将其设置为0。同时,我们不仅可以将日期换成其他格式,也可以比较两个日期的大小以及算两个日期相隔多少天。在进行比较时,如果是真则返回“True”,如果是假则返回“Flase”。具体程序如下所示:

    b=datetime.date(1997,3,18)aa>bc=a-bc.days

    618624ceb4c843d85e125a63404cc679.png

    2.  datetime.time

    datetime.time用于对于时间的处理,其中有五个参数:hour、minute、second、microsecond(毫秒)以及tzinfo(时区),必须包含时间参数,其他可以省略,省略时视该参数的取值为0。

    其基本用法与date的相关用法类似,具体用法如以下程序所示:

    a=datetime.time(11,31,00,00)print(a.hour,a.minute,a.second,a.microsecond,a.tzinfo)a.__str__()  #简单获取时间的字符串a.strftime("%H:%M:%S")a.__format__('%H-%M-%S')b=datetime.time(12,22,12,23)print(aprint(a>b)

    e16a82859436c7223bccb75890e9ad88.png

    这里的a和b不能转化为时间戳或是时间元组,因为其不包含日期参数。也不能计算a与b之间的时间间隔。

    3. datetime.datetime

    datetime模块中的datetime类可以看作是上两类的合集。datetime.datetime参数包括:year、month、day、hour、minute、second、microsecond、tzinfo(时区)。而在具体的使用过程中,必须要出现的参数为:year、month、day。其他参数如果不需要可以省略不写。程序如下:

    from datetime import datetime as dta=dt.now()  #本地当前时间b=dt(2018,5,26) #没写的参数默认为0min=dt.min #datetime模块中datetime类可表示的最小时间max=dt.max #datetime模块中datetime类可表示的最大时间print(min)print(max)b.toordinal() #变为时间戳b.timetuple() #变为时间元组print(a-b)

    e2a0e78767f1774477edfa8ad5de104f.png

    在datetime类进行日期的相减时,得到的是精确到秒的两者的时间差。datetime模块中的datetime类和time模块的参数看起来类似,datetime类中的时间也的确可以转换为time模块中的表示形式,即时间戳以及时间元组。而对于日期时间的比较和加减运算,只能通过datetime模块进行,time模块不支持日期时间之间的比较和加减运算。

    表1 各参数的取值范围

    参数

    取值范围

    year

    0001-9999

    month

    1-12

    day

    1-30(31)[2月则以其实际天数为准]

    hour

    0-24

    minute

    0-60

    second

    0-60

    microsecond

    0-1000000

    4. datetime. timedelta

    286b7eb4e2aaa5c67fb7923ff52a0006.png

    如上图所示,datetime. timedelta表示的是两个date或者datetime的时间差。我们可以运用datetime. timedelta对时间进行相应的加减处理。例如,可以运算得出已知的日期加上300天的具体日期为多少。其参数为:days、seconds、microseconds、milliseconds、minutes、hours、weeks。其只能储存days、seconds、microseconds相关信息,其他信息则自动转换为这三个信息储存起来。具体用法如下所示:

    a=dt.now()  #本地当前时间print(a)delta=datetime.timedelta(days=1,hours=2,minutes=30,seconds=20)print(delta)newtime=a+delta #当前时间加上1一天2小时30分20秒的时间print(newtime)

    aa04a8a75f0dc4da6211c1ec2c37c757.png

    对爬虫俱乐部的推文累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫!

    往期推文推荐

    • Python编程技术暑期训练营报名啦!

    • 新浪财经独立董事

    • Python常见内置函数用法(一)

    • Python常见内置函数用法(二)

    • Python常见内置函数用法(三)

      命令更新之corr2docx:将相关系数矩阵报告至Word文档

    • 爬虫俱乐部推出新命令:cnar--年报数据快到碗里来

    • 用python提取pdf表格数据

      单行观测值过长?filefilter帮你自动分行

    • 你究竟有多少NB好校友?

    • 筛选文件利器——filesearch命令

    • 绘制《倚天屠龙记》地名词云图

    • Python标准库-logging模块(1)

    • 爬虫俱乐部新云端数据源启用

    关于我们

    微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

    此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

    投稿邮箱:statatraining@163.com

    投稿要求:1)必须原创,禁止抄袭;2)必须准确,详细,有例子,有截图;注意事项:1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。2)邮件请注明投稿,邮件名称为“投稿+推文名称”。3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

    16b9e527cce12972141176b35a549b87.png

    展开全文
  • python 日期大小比较

    千次阅读 2021-01-29 05:15:59
    输入的日期跟当前日期比较大小日期python中 存在time,datetime,string三种形式转化如下#str转timetime.strptime('2018-09-28',"%Y-%m-%d")#str转datetimedatetime.datetime.striptime('2018-09-28',"%Y-%m-%d")#...

    输入的日期跟当前日期比较大小

    日期在python中 存在time,datetime,string三种形式转化如下

    #str转time

    time.strptime('2018-09-28',"%Y-%m-%d")

    #str转datetime

    datetime.datetime.striptime('2018-09-28',"%Y-%m-%d")

    #time 转string

    time.strftime("%y-%m-%d",time.localtime())

    需求实现:

    import datetime

    import time

    #将日期字符串转为时间再比较,time,datetime,str

    def valid_date(timestr):

    #获取当前时间日期

    nowTime_str = datetime.datetime.now().strftime('%Y-%m-%d')

    print(nowTime_str)

    #mktime参数为struc_time,将日期转化为秒,

    e_time = time.mktime(time.strptime(nowTime_str,"%Y-%m-%d"))

    print(e_time)

    try:

    s_time = time.mktime(time.strptime(timestr, '%Y-%m-%d'))

    print(s_time)

    #日期转化为int比较

    diff = int(s_time)-int(e_time)

    print(diff)

    if diff >= 0:

    return 1

    else:

    print('所查日期不能小于当前时间!!!')

    return 0

    except Exception as e:

    print(e)

    return 0

    if __name__=='__main__':

    valid_date("2018-10-07")

    执行结果:

    6f0baecc65a42c9efc213b6bc521ff9f.png

    展开全文
  • 下面小编就为大家分享一篇Python比较2个时间大小的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python3获取两个日期之间所有日期,以及比较大小的实例如下所示:import datetime#获取两个日期间的所有日期def getEveryDay(begin_date,end_date):date_list = []begin_date = datetime.datetime.strptime(begin_...

    python3获取两个日期之间所有日期,以及比较大小的实例

    如下所示:

    import datetime

    #获取两个日期间的所有日期

    def getEveryDay(begin_date,end_date):

    date_list = []

    begin_date = datetime.datetime.strptime(begin_date, "%Y-%m-%d")

    end_date = datetime.datetime.strptime(end_date,"%Y-%m-%d")

    while begin_date <= end_date:

    date_str = begin_date.strftime("%Y-%m-%d")

    date_list.append(date_str)

    begin_date += datetime.timedelta(days=1)

    return date_list

    print(getEveryDay('2016-01-01','2017-05-11'))

    import datetime

    #比较大小

    strftime = datetime.datetime.strptime("2017-11-02", "%Y-%m-%d")

    strftime2 = datetime.datetime.strptime("2017-01-04", "%Y-%m-%d")

    print("2017-11-02大于2017-01-04:",strftime>strftime2)

    以上这篇python3获取两个日期之间所有日期,以及比较大小的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

    您可能感兴趣的文章:

    python 计算两个日期相差多少个月实例代码

    Python实现计算两个时间之间相差天数的方法

    Python计算两个日期相差天数的方法示例

    python计算N天之后日期的方法

    Python实用日期时间处理方法汇总

    python比较两个列表大小的方法

    时间: 2018-04-07

    本文实例讲述了python计算N天之后日期的方法.分享给大家供大家参考.具体如下: python计算N天之后的日期,可以自己写成一个函数,想得到几天后的日期都行 #! /usr/bin/env python #coding=utf-8 import time import datetime d1 = datetime.datetime.now() d3 = d1 + datetime.timedelta(days =10) print str(d3) print d3.ctime() 输出结果如

    本文实例讲述了python比较两个列表大小的方法.分享给大家供大家参考.具体如下: L1 = [1, ('a', 3)] L2 = [1, ('a', 2)] print L1 < L2, L1 == L2, L1 > L2 # less,equal,greater: tuple of results 运行结果如下: False False True 希望本文所述对大家的Python程序设计有所帮助.

    本文实例讲述了Python计算两个日期相差天数的方法.分享给大家供大家参考,具体如下: #!/usr/bin/python import time import sys def dateinput(): date = raw_input('please input the first date: ') return date def datetrans(tdate): spdate = tdate.replace("/","-") try: datesec = ti

    原则, 以datetime为中心, 起点或中转, 转化为目标对象, 涵盖了大多数业务场景中需要的日期转换处理 步骤: 1. 掌握几种对象及其关系 2. 了解每类对象的基本操作方法 3. 通过转化关系转化 涉及对象 1. datetime 复制代码 代码如下: >>> import datetime >>> now = datetime.datetime.now() >>> now datetime.datetime(2015, 1, 12, 23, 9

    本文实例讲述了Python实现计算两个时间之间相差天数的方法.分享给大家供大家参考,具体如下: #-*- encoding:UTF-8 -*- from datetime import date import time nowtime = date.today() def convertstringtodate(stringtime): "把字符串类型转换为date类型" if stringtime[0:2] == "20": year=stringtime[0:4

    近期,由于业务需要计算两个日期之前相差多少个月.我在网上找了很久,结果发现万能的python,居然没有一个模块计算两个日期的月数,像Java.C#之类的高级语言,都会有(date1-date2).months的现成方法,觉得不可思议.说句实在的,一直觉得python 的日期处理模块真心不好用. 哦,对了,别跟我说 datetime, calendar, dateutil 这些模块,因为我都试过了,都没用.有个竟然算出来还有错.datetime.timedelta只能计算出日时分秒.对年月却不支持

    复制代码 代码如下: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_WorkDay]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_WorkDay] GO --计算两个日期相差的工作天数 CREATE FUNCTION f_WorkDay( @dt_begin datetime, --计算的开始日期 @dt_end date

    本文实例讲述了php计算两个日期相差天数的方法.分享给大家供大家参考.具体实现方法如下: <?php /** * 求两个日期之间相差的天数 * (针对1970年1月1日之后,求之前可以采用泰勒公式) * @param string $day1 * @param string $day2 * @return number */ function diffBetweenTwoDays ($day1, $day2) { $second1 = strtotime($day1); $second2 = s

    本文实例讲述了php计算两个日期相差天数的方法.分享给大家供大家参考.具体实现方法如下: <?php $date1 = date( 'Y-m-d' ); $date2 = "2015-12-04"; $diff = abs(strtotime($date2) - strtotime($date1)); $years = floor($diff / (365*60*60*24)); $months = floor(($diff - $years * 365*60*60*24) /

    MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数.分钟数.小时数.天数.周数.季度数.月数.年数,当前日期增加或者减少一天.一周等等. SELECT TIMESTAMPDIFF(类型,开始时间,结束时间) 相差的秒数: SELECT TIMESTAMPDIFF(SECOND,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S')) 相差的分钟数: SELECT TIMESTAMPDIFF(MINUTE,'

    如下所示: def mat_inter(box1,box2): # 判断两个矩形是否相交 # box=(xA,yA,xB,yB) x01, y01, x02, y02 = box1 x11, y11, x12, y12 = box2 lx = abs((x01 + x02) / 2 - (x11 + x12) / 2) ly = abs((y01 + y02) / 2 - (y11 + y12) / 2) sax = abs(x01 - x02) sbx = abs(x11 - x12) say

    具体代码如下所示: # -*- coding: utf-8 -*- ''''''' ftp自动检测源文件夹的更新,将源文件夹更新的内容拷贝到目标文件夹中 使用树的层序遍历算法,支持深度目录拷贝 ''' import os from ftplib import FTP import os,sys,string,datetime,time import shutil import socket class MyUpdateMonitor(object): def __init__(self, hos

    在Java开发物流或是其他功能的时候会用到两个日期 相差多天的数据,所以整理了一下备用.调用方式: 复制代码 代码如下: long date1 = getDateTime("20121201");//可改成自己的日期类型,但以 "20121212"这种格式 long date2 = getDateTime("20121212");   int day = dateInterval(date1, date2);   System.out.print

    复制代码 代码如下: //判断是否为闰年function isLeapYear(year){if(year % 4 == 0 && ((year % 100 != 0) || (year % 400 == 0))){     return true;}return false;}//判断前后两个日期function validatePeriod(fyear,fmonth,fday,byear,bmonth,bday){if(fyear < byear){return true;}el

    展开全文
  • python3获取两个日期之间所有日期,以及比较大小(方法教程)。import datetime#获取两个日期间的所有日期def getEveryDay(begin_date,end_date):date_list = []begin_date = datetime.datetime.strptime(begin_date, ...
  • Python比较日期大小

    2021-09-10 14:11:30
    from datetime import * d1, m1, y1 = [int(x) for x in input("Enter first" " person's date(DD/MM/YYYY) : ").split('/')] b1 = date(y1, m1, d1) d2, m2, y2 = [int(x) for x in input("Enter second
  • 如果说你,在python中需要比较两个日期大小,但是你不确定是否属于同一种日期类型的话 比如datetime.datetime 和 datetime.date 这两种类型,因为你django的models类中要是使用的是 DateField的话那么你查询出来...
  • python datetime、date、timestamp 在多个日期型字符串之间比较日期大小
  • Python比较两个日期的多种方法

    千次阅读 2022-07-03 03:19:09
    今天我们就来探讨另一个问题,如何用Python比较两个日期?如果需要用Python处理日期和时间,大家第一时间肯定会想到datetime、time、calendar等模块。在这其中,datetime(日期时间)模块主要是用来表示日期的,就是...
  • 今天我们就来探讨另一个问题,如何用Python比较两个日期?datetime如果需要用Python处理日期和时间,大家肯定会先想到datetime、time、calendar等模块。在这其中,datetime模块主要是用来表示日...
  • Python日期字符串比较

    千次阅读 2021-02-09 10:47:51
    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 需要用python的脚本来快速检测一个文件内的二个时间日期字符串的大小,其实实现很简单,首先一些基础的日期格式化知识如下'''%a星期的简写。...
  • 方法1,使用datetime值比较(一般不如2好)import datetime# 范围时间d_time1 = datetime.datetime.strptime(str(datetime.datetime.now().date())+'8:30', '%Y-%m-%d%H:%M')d_time2 = datetime.datetime.strptime(str...
  • 摘要:下文讲述Python中两个时间大小对比的方法分享,如下所示;时间对比,是我们日常开发中常用的操作,那么如何对时间进行对比操作呢?下文将一一道来,如下所示:实现思路:方式1:使用time模块下time.strptime将...
  • 日期列解析为pandas Timestamps/numpy datetime64非常重要。最好的方法是使用tou-datetime和一个格式。在In [11]: dfOut[11]:DATE TMAX TMIN0 20110706 317 2111 20110707 322 2112 20110708 317 2113 20110709 ...
  • python 时间比较方法总结

    万次阅读 2021-01-13 19:53:06
    1,最近发现,python的datetime可以直接运用比较运算符进行大小比较首先定义一组9月份日期数组from datetime import datetimetargets = [ # 9/1到9/30的日期数据数组datetime.datetime(2020, 9, 1, 0, 0),datetime....
  • 日期时间是常用的模块,方法也很多,这里简单写一些,应该就足够了。 date和time方法是一致的。 # _*_ coding: utf-8 _*_ from datetime import datetime # 获取当前年月日 时分秒和毫秒。并分别打印 now_time =...
  • # 文件大小 filesize = os.path.getsize(filename) print(filesize) # 字节数 # 文件创建日期 create_time = os.path.getctime(filename) # 返回的是时间戳 print(datetime.datetime.fromtimestamp(create_tim
  • 我发现字符串类型的日期可以不转换为datetime.datetime类型,直接比大小,这是为什么?特殊情况么?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,218
精华内容 16,487
关键字:

python比较日期大小