【Python】 用到的时间模块的计算

Python中的时间和日期计算非常灵活且强大,主要通过datetimetime模块来实现。以下是一些常用的时间和日期计算方法:

1. 获取当前时间

from datetime import datetime

# 获取当前日期和时间
now = datetime.now()
print("当前时间:", now)

# 获取当前日期
today = datetime.today()
print("当前日期:", today)

2. 时间格式化(字符串和日期格式互换)

日期格式转字符串:使用strftime()方法可以将datetime对象格式化为字符串。

# 创建datetime对象
date_ = datetime(2024, 5, 10, 15, 30) #
now_=datetime.now()
print(type(date_))
print(type(now_))

# 格式化输出
formatted_date = date_ .strftime("%Y-%m-%d %H:%M:%S") #可以格式化现在的时间 now_
formatted_now = now_ .strftime("%Y-%m-%d %H:%M:%S") 
print("格式化后的日期和时间:", formatted_date)
print(type(formatted_date))

字符串转日期格式:使用strptime()方法可以将日期字符串解析为datetime对象。

from datetime import datetime

# 日期字符串
date_string = "2024-04-10 15:30:00"

# 解析为datetime对象
parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print("解析后的日期和时间:", parsed_date)

3. 修改日期格式统一化

date_string ='2023年7月14日'
new_date = date_string .replace("年", "-").replace("月", "-").replace("日", " ").replace("/", "-").strip()
print(new_date )
#结果:2023-7-14

4. 时间加减计算

可以通过直接对datetime对象进行加减操作来计算新的时间点。

import datetime

# 加上10天
day_10 = datetime.date.today() + datetime.timedelta(10)
print("加上10天后的时间:", day_10 )

#昨天的计算
import datetime
yesterday = datetime.date.today() + datetime.timedelta(-1)
print(yesterday )
    
# 减去30分钟
now_time=datetime.datetime.now()
minus_30min=now_time - timedelta(minutes=30)
print("减去30分钟后的时间:", minus_30min)

#年龄的计算
init_year=1996 #设定一个初始日期
year_=datetime.datetime.now().year
age=year_-int(init_year)     #整数型
print('今年的年龄是:',age)

5. 时间间隔计算

可以使用timedelta对象来表示时间差,或者使用datetime对象之间的差值来计算时间间隔。

from datetime import datetime, timedelta

# 创建两个datetime对象
start_time = datetime(2024, 5, 10, 8, 0)
end_time = datetime(2024, 5, 10, 17, 0)

# 计算时间间隔
time_diff = end_time - start_time
print("时间间隔:", time_diff)
print("总秒数:", time_diff.total_seconds())
print("天数:", time_diff.days)
print("小时数:", time_diff.seconds // 3600)
print("分钟数:", (time_diff.seconds // 60) % 60)

6. 时间戳的转换

time模块提供了将datetime对象转换为时间戳(自1970年1月1日以来的秒数)以及将时间戳转换回datetime对象的功能。

当前时间转成时间戳类型:

import time
import datetime
t = time.time()
#print (t)                       #原始时间数据
#print (int(t))                  #秒级时间戳 10位
#print (int(round(t * 1000)))    #毫秒级时间戳 13位
#print (int(round(t * 1000000))) #微秒级时间戳 16位
time_= int(round(t * 1000))
print(time_)

时间戳转成时间:

import time 

time_Num=1716364830123
time_Stamp = float(time_Num/1000)  #位数参考上面
time_Array = time.localtime(time_Stamp ) 
time_stamp= time.strftime("%Y-%m-%d %H:%M:%S", time_Array ) 

print(time_stamp)  
#2024-05-22 16:00:30

7. 休眠

使用time.sleep()函数可以让程序暂停执行一段时间。

import time

# 休眠10秒
time.sleep(10)
print("程序继续执行")

8. 从文本中提取出日期

import re
text='2023-03-05的时间已经过了几年了'
#注:text='2012年3月3日' 这种类型不可以,要用replace_fromtext,然后再用这个
import datetime
def Not_none(n):
    if n != None:
        return n        
match = re.search(r'\d{4}-\d{2}-\d{2}', text)
match1 = re.search(r'\d{4}-\d{2}-\d{1}', text)
match2 = re.search(r'\d{4}-\d{1}-\d{2}', text)
match3 = re.search(r'\d{4}-\d{1}-\d{1}', text)        
time_=list(filter(Not_none, [match, match1, match2, match3]))[0]
date_ = datetime.datetime.strptime(time_.group(),'%Y-%m-%d').date()
print( date_ )
#2023-03-05

这些是Python中进行时间和日期计算的一些基本方法。通过这些工具,我们可以轻松地处理各种时间和日期相关的任务。

PS:处理时间和日期时要注意时区问题,如果需要处理不同时区的数据,可能需要使用第三方库如pytz来确保准确性。
以及在测试的时候,由于我们调用的包是time,尽可能我们在命名对象的时候避免取名time,以免运行出错!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值