Python学习笔记--时间与日历
时间:
import time
from datetime import datetime,timezone,timedelta
#-------------------------------
# datatime方法
#-------------------------------
# 显示当前日期/时间
dt0 = datetime.now()
# 2023-03-30 10:28:57.578288
print(dt0)
# 1680143337.578288 单位为S,精确到us
print(dt0 .timestamp())
print(dt0.year,dt0.month,dt0.day,dt0.hour,dt0.minute,dt0.second)
#-------------------------------
# 用指定日期时间创建datetime
dt1 = datetime(2023, 1, 1)
print(dt1)
print(dt1.timestamp())
dt2 = datetime(2020,2,2,12,34,56)
print(dt2)
print(dt2.timestamp())
#-------------------------------
# 格式化字符串创建datetime
dt3 = datetime.strptime('2023-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
print(dt3)
# 将datetime转换成格式化字符串
print(dt3.strftime("%Y/%m/%d %H:%M:%S"))
#-------------------------------
# time方法
#-------------------------------
# 另一种获取时间戳的方法
tm1 = time.time()
print(tm1)
# 时间戳转换成本地时间(结构化)
localtime = time.localtime(tm1)
print (localtime)
# 转换为ASCII格式时间
print (time.asctime(localtime))
# 自定义格式
print (time.strftime("%Y-%m-%d %H:%M:%S", localtime))
print (time.strftime("%a %b %d %H:%M:%S %Y", localtime))
#-------------------------------
# 将格式字符串转换为结构化时间
# 与datetime的方法传入参数相同,返回格式不同
dt5 = time.strptime("Sat Mar 28 22:24:24 2016","%a %b %d %H:%M:%S %Y")
print(dt5)
# 将结构化数组转换成时间戳
print (time.mktime(dt5))
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
时间运算:
# datetime可以直接做减法,返回相关的天数及
dt1 = datetime(2024, 1, 1)
dt2 = datetime(2023, 1, 1, 1, 0, 0)
print("dt1 ", dt1)
print("dt2 ", dt1)
# 364 days, 12:00:00, 364天23小时
print(dt1 - dt2)
#-365 days, 12:00:00, -365天1小时
print(dt1 - dt2)
显示日历:
#!/usr/bin/python3
import calendar
# 显示某一年的日历,c = 横向间隔, m - 横向数量
print (calendar.prcal(2023, c = 8, m = 6)
# 设置显示以星期日开始
calendar.setfirstweekday(6)
# 显示某一个月的日历
print (calendar.month(2012,5))
# 判断某年是否是闰年
print(calendar.isleap(2012))
# 计算某个时间段之内闰年的个数(包括左值,不包括右值)
print(calendar.leapdays(2012, 2020))