python中时间函数及其应用

[复制链接]
发表于 2026-1-14 01:26:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
 近段时间,因在改写从前写的学校自动铃声控制体系,又学到了一些新的知识,特记载如下:
一、时间函数根本

1、time模块中的函数及其用法


  •         time.time(): 返回当前时间的时间戳,即自1970年1月1日以来的秒数。
  •         time.localtime(): 返回当地时间的布局化表现。如time.struct_time(tm_year=2024, tm_mon=10, tm_mday=6, tm_hour=20, tm_min=12, tm_sec=1, tm_wday=6, tm_yday=280, tm_isdst=0)
  •         time.gmtime(): 返回UTC时间的布局化表现。如time.struct_time(tm_year=2024, tm_mon=10, tm_mday=6, tm_hour=12, tm_min=12, tm_sec=1, tm_wday=6, tm_yday=280, tm_isdst=0)
  •         time.sleep(seconds): 使步伐停息指定的秒数。
  •         time.strftime('%Y-%m-%d %H:%M:%S', t): 将布局化时间对象转换为指定格式的字符串。
  • time.strptime(string,'%Y-%m-%d %H:%M:%S'): 将字符串转换为布局化时间对象。
2、datetime模块中的函数及其用法


  • datetime.datetime(): 创建日期时间对象。
  • datetime.now(): 获取当前日期和时间。
  • datetime.fromtimestamp(timestamp): 将时间戳转换为日期时间对象。
  • datetime.timedelta(): 表现两个日期或时间之间的差别。
二、时间函数的应用

3、将用字符串情势表现的日期时间格式化
  1. from datetime import datetime,date,time
  2. import time
  3. from chinese_calendar import is_workday, is_holiday, is_in_lieu
  4. dat = '2021-9-11'
  5. tim = '9:11:30'
  6. str_time = dat + ' ' + tim # 用空格分隔日期与时间
  7. t_strp = datetime.strptime(str_time, '%Y-%m-%d %H:%M:%S') # 字符格式解析为日期时间
  8. print('当前时间t_strp为', t_strp, type(t_strp))
复制代码
结果为:当前时间t_strp为 2021-09-11 09:11:30 <class 'datetime.datetime'>
4、时间对象转换为指定格式的字符串
  1. from datetime import datetime,date,time
  2. import time
  3. from chinese_calendar import is_workday, is_holiday, is_in_lieu
  4. t_strf = time.strftime('%Y-%m-%d %H:%M:%S %A', time.localtime()) # 格式化输出
  5. print('本地时间localtime为:',time.localtime())
  6. print('本地时间t_strf为', t_strftime, type(t_strftime))
复制代码
运行结果为:当地时间localtime为:time.struct_time(tm_year=2024, tm_mon=10, tm_mday=6, tm_hour=20, tm_min=31, tm_sec=20, tm_wday=6, tm_yday=280, tm_isdst=0)
当地时间为t_strf为 2024-10-06 20:31:20 Sunday <class 'str'>
5、归并日期时间

我们从指令电子表格中分别提取各指令时间,日期则用当前日期,归并成日期时间,再变革成时间戳,就可以和当前时间求时间差,从而判断指令是否该运行了。
须要留意的是,电子表格提取的时间已经是时间格式。
  1. import openpyxl
  2. import re
  3. import colorama # 打包后彩色字显示用
  4. from datetime import datetime, date, time,timedelta
  5. from chinese_calendar import is_workday, is_holiday # 自动判断中国假期
  6. import time
  7. import os
  8. wb = openpyxl.load_workbook('自动打铃指令.xlsx',data_only=True)  # 打开指令文件,如有公式只读数据
  9. sheet = wb['Sheet1']
  10. tim = sheet['B' + str(i)].value  # 提取指令时间,已是datetime数据类型
  11. time2 = datetime.combine(date_today, time1) # 合并日期时间,已是datetime数据类型
  12. t0 = time.time()
  13. t1 = time2.timestamp()
  14. differtime = (t1 - t0) # 时间差(秒)
复制代码
6、自动判断中国工作日和沐日

对于学校上课铃声控制,还要思量周末响铃扰民标题,起先思量寻常周从星期列表中判断周六周日不响铃,国家节沐日调休时再重新天生一个新的列表,非常复杂。
不经意间,发现有第三方插件chinese_calendar,能自动判断中国节沐日,太好了。
  1. import openpyxl
  2. import re
  3. import colorama # 打包后彩色字显示用
  4. from datetime import datetime, date, time,timedelta
  5. from chinese_calendar import is_workday, is_holiday # 自动判断中国假期
  6. import time
  7. import os
  8. while True:
  9.      date_today = date.today() # 重新读取当前时间
  10.      week_list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
  11.      weekday = date_today.weekday()
  12.      week = week_list[weekday]
  13.      # print('星期:', week_list[weekday])
  14.      print(f'今天是{date_today},{week}')
  15.      work_day = is_workday(date_today) # 能自動判斷中國工作日
  16.      holi_day = is_holiday(date_today) # 能自動判斷中國節假日
  17.      # print('工作日', is_workday(date_today))
  18.      if work_day == True:  # 工作日
  19.          print('是国家规定的工作日。')
  20.          ins() # 导入指令包
  21.          run() # 运行主程序
  22.      else:
  23.         date_today = date.today()
  24.         
复制代码
极域电子课堂座位表步伐下载链接:链接:https://pan.baidu.com/s/1X0WUTtXmr1EhFg9CNgoIKA?pwd=odvs 
提取码:odvs
考试指令体系下载链接:https://pan.baidu.com/s/11x9fS1gUEPCd6w15KHCxSw?pwd=zvw3 
提取码:zvw3 
照片插入电子表格步伐链接:https://pan.baidu.com/s/1dvW5q9G53prkUDVcO6uffA?pwd=w3jp 
提取码:w3jp 
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表