Python 测开27期 - julia - 学习笔记 - Python 内置库 日期与时间处理

工作中应用

  • 作为日志信息的内容输出
  • 计算某个功能的执行时间
  • 用日期命名一个日志文件的名称
  • 生成随机数(时间是不会重复的)

python 中处理时间的模块

  • time
  • datetime
  • calendar

常见的时间表示形式

  • 时间戳
  • 格式化的时间字符串

datetime 常用的类

  • datetime (from datetime import datetime) 时间日期相关
  • timedelta (from datetime import timedelta) 计算两个时间的时间差
  • timezone (from datetime import timezone) 时区相关
import datetime
import time

print(datetime.datetime.now())
print(time.time())

s = "2021-09-27 06:47:06"
# 将字符串 转换为datetime实例
s1 = datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S')
print(s1, type(s1))

# 时间转成字符串
now = datetime.datetime.now()
result = now.strftime('%a, %b %d %H:%M')
print(result, type(result))

mtimestamp = 1632725226.129461
# 将时间戳转成时间
s = datetime.datetime.fromtimestamp(mtimestamp)
print(s)
# 将时间转成时间戳
print(s.timestamp())

# 写一段代码,生成一个以时间命名的日志文件。并向日志文件中写入日志数据。
# filename = f'{datetime.datetime.now().strftime("%Y-%m-%d_%H_%M_%S")}.log'
# with open(filename,'w',encoding='utf-8') as f:
#     f.write('test')

print(f'{"calendar":-^80}')
import calendar

print(calendar.month(2018, 7))

year = 2018
month = 7
# 比如判断2018年7月有多少天
print(calendar.monthrange(year, month))  # 返回(6,31)表示这个月的第一天是周日,一共有31天
print(calendar.weekday(2018, 7, 7))
# 5
# 以2018 和 2008为例 判断是否为闰年
print(calendar.isleap(2018))
print(calendar.isleap(2008))
# 使用calendar里的prcal函数 打印整年的数据
print(calendar.prcal(2022, m=6))
# m参数可以显示几个月 几个月为一行输出[将12个月分为几列]