比较两个时间大小 datetime

Posted GongDonghai的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较两个时间大小 datetime相关的知识,希望对你有一定的参考价值。

DateTime 时间A = DateTime.Now;
DateTime 时间B = now.AddHours(1);

int result = 时间A.CompareTo(时间B);

if (result < 0)

    //如果当前实例早于指定的日期时间,则返回小于零的值
    Console.WriteLine("时间A比时间B要早");

else if (result == 0)

    //如果当前实例等于指定的日期时间,则返回零
    Console.WriteLine("时间A等于时间B");

else

    //如果当前实例晚于指定的日期时间,则返回大于零的值
    Console.WriteLine("时间A比时间B要晚");

48 python判断时间是否落在两个时区之间(只比较时刻不比较日期)

https://blog.csdn.net/feiyang5260/article/details/87821901

 

方法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(datetime.datetime.now().date())+‘18:33‘, ‘%Y-%m-%d%H:%M‘)
 
# 当前时间
n_time = datetime.datetime.now()
print(‘当前时间: ‘+str(n_time))
# 判断当前时间是否在范围时间内
if n_time > d_time1 and n_time<d_time2:
    print("在此区间中")
else:
    print("不在此区间")

  

结果如下:

技术图片

 

方法2,时间字符串直接比大小(最好用)

import datetime
t1 = ‘15:40‘
t2 = ‘18:17‘
now = datetime.datetime.now().strftime("%H:%M")
print("当前时间:" + now)
if t1 < now < t2:
    print("在此区间中")
else:
print(‘不在此区间中‘)

  

结果如下:

技术图片

方法3,直接将当前时间格式化成字符串然后转换成整数进行比较。(不方便舍弃)

import time
now = time.strftime("%H%M%S")
print("当前时间:" + now)
#时间区间[09:35:10,18:01:01]
if(180101 > int(time.strftime("%H%M%S")) > 93510):
    print(‘在此区间中‘)

  

结果如下:当前时间15:51:27

技术图片

示例

从txt读取指定时间段,判断是否在里面

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import datetime  #时间

time_begin="8:00"
time_over ="22:00"

#函数名 读取txt中指定参数内容
#函数输入
# path_txt  txt文件地址
# canshu    要从txt读取的内容
# fengefu   参数名字和值的分隔符号 默认 -
#函数输出
# 返回字符型结果

def readtxt(path_txt,canshu):
    #/home/pi/Desktop/info
    fengefu="-"
    f = open(path_txt, mode=‘r+‘, encoding=‘utf-8‘)  # 打开txt文件,以‘utf-8’编码读取
    lines = f.readlines()   # 以行的形式进行读取文件
     
    for line in lines:
        a=line.strip().split(fengefu)    # x.strip()#除去每行的换行符 按照:分割
        b = a[0:1] # list--str
        c = "".join(b).strip()  # 去除空格
        
        if  c==canshu:
            b = a[1:2]   # 这是选取需要读取的位数
            c="".join(b).strip()  # 去除空格   
            #print(c)
            return c
    f.close()
    

def main():
    #读取开始时间 字符型 数字需要转化 int()
    time_begin=readtxt("/home/pi/Work/WorkPlace/python/2waibao/2face_lab/info","time_begin")
    print(time_begin)
    #读取结束时间
    time_over=readtxt("/home/pi/Work/WorkPlace/python/2waibao/2face_lab/info","time_over")
    print(time_over)
    #获取当前和时间
    now = datetime.datetime.now().strftime("%H:%M")
    print("当前时间:" + now)
    #比较是否在时间段内
    if time_begin < now < time_over:
        print("在此区间中")
    else:
        print("不在此区间中")


main()

  

以上是关于比较两个时间大小 datetime的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver如何比较两个日期(datetime)的年月大小,比较到年月,不比较日

string类型的时间如何比较大小?

powerbuilder里面如何把editmask中输入的字符串类型如何转换成datetime啊用来比较和datetime类型的大小 !

C# 时间比较大小

Sql字符串与时间比较问题

CDateTimeCtrl类型的日期如何比较大小