Python 时间、日期、日历模块

一、Time时间模块

#时间元组
'''
专门用于保存时间的元组格式(不是标准的元素格式)
用户定义的时间元组:(年,月,日,时,分,秒,周几,一年中的第几天)
系统返回的时间元组:(tm_year=2017,tm_mon=7,tm_mday=4,,tm_hour=9,tm_min=4,tm_sec=21,tm_wday=1,tm_yday=185,tm_isdst=0)
'''

#导入时间模块
import time

#常用的时间值
#timezone 获取当前时区和0时区(本初子午线所在时区) 相差的时间
print(time.timezone)

#altzone() 获取当前时区和0时区(本初子午线所在时区)相差的秒数
print(time.altzone)

#daylight 检测是否是夏令时
print(time.daylight)

#asctime() 将时间元组转化成可读的英文时间格式
ttp = (1970,1,1,0,0,0,0,0,0)
result = time.asctime()
print(result)

#localtime() 通过时间戳获取本地时间元组
result = time.localtime() #当前时间戳
result = time.localtime(0) #指定时间戳
print(result)

#gmtime() 通过时间戳 获取UTC时间元组
#result = time.ctime()#当前时间戳
result = time.ctime(0)#指定时间戳
print(result)

#ctime() 使用时间戳获取当前时区的可读英文时间格式
#result = time.ctime() #当前时间戳    asctime(localtime())
result = time.ctime(0) #指定时间戳    asctime(localtime(0))
print(result)

#mktime()  使用时间元组制作指定时间的时间戳
ttp = (1999,12,23,0,0,0,0,0,0)
result = time.mktime(ttp)
print(result)

#clock() 获取cpu时间(不计算程序的睡眠时间)
result = time.clock()
print(result)

#perf_counter() 计时器函数(计算程序的睡眠时间)
result = time.perf_counter()
print(result)

#sleep() 程序睡眠(暂停)
#time.sleep(5)

#time() 获取当前的本地时间戳 
resutl = time.time() # 1543285097.5119367
print(result)

#strftime() str froamt time 格式化时间字符串,必须为整数
#时间元组
ttp = (1999,12,21,23,15,0,0,0,0)
result = time.strftime('%Y-%m-%d %H-%M-%S',ttp)
print(result) #1999-12-23  00:00:00

#strptime()  str parse time 解析格式化时间字符串
#12月21日1999年 00:15:00
#%m月%d日%Y年 %H:%M:%S
result = time.strptime('12月21日1999年 00:15:00','%m月%d日%Y年 %H:%M:%S')
print(result)

二、datetime模块

# datetime常用方法:
# 使用datetime和time获取当前时间
now1 = datetime.datetime.now()
now2=time.strftime('%Y-%m-%d %H:%M:%S')
print(now1)
print(now2)
now = datetime.datetime.now()
d1 = now - datetime.timedelta(hours=1)#获取前一小时
d2 = now - datetime.timedelta(days=1)#获取前一天
print(now)
print(d1)
'''
执行结果:
	2018-01-17 22:03:04.686923
	2018-01-17 22:03:04
	2018-01-17 22:03:04.687486
	2018-01-17 21:03:04.687486
'''

# 使用datetime获取代码执行的时长
# 使用时间戳获取代码执行时间
s_time = time.time()
for i in range(0,10):
    time.sleep(1)
e_time=time.time()
print('代码运行时间是:',e_time - s_time)
'''
执行结果:
	代码运行时间是: 10.003105163574219
'''

三、时间戳和字符串的互相转化

# 字符串格式化时间转换时间戳
str_time = '2018-1-17'
print(time.mktime(time.strptime(str_time,'%Y-%m-%d')))

# 时间戳转换成格式化的时间字符串
gsh_time= time.time()
print(time.strftime('%Y-%m-%d',time.localtime(gsh_time)))

# datetime对象转换成时间戳
dt = datetime.datetime.now()
print(time.mktime(dt.timetuple()))

# 时间戳转换成datetime对象
sjc_time = time.time()
print(datetime.datetime.fromtimestamp(sjc_time))
'''
执行结果:
	1516118400.0
	2018-01-17
	1516198008.0
	2018-01-17 22:06:48.944055
'''

python中时间日期格式化符号:

%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 当前时区的名称
%% %号本身

四、日历模块

#calendar日历模块
import calendar

#calendar() 获取一年日历
result = calendar.calendar(2018,w = 2,l = 1,c = 6,m = 3)
print(result)

#获取指定月份的日历
result = calendar.month(2017,11,w = 4,l = 3)
print(result)

#monthcalendar() 获取指定月份的日历的矩阵格式
result = calendar.monthcalendar(2017,11)
print(result)

'''
    1   2  3  4  5  6  7
[
    [0, 0, 1, 2, 3,  4,  5], 
    [6, 7, 8, 9, 10, 11, 12], 
    [13, 14, 15, 16, 17, 18, 19], 
    [20, 21, 22, 23, 24, 25, 26], 
    [27, 28, 29, 30, 0, 0, 0]
]
'''

#isleap() 检测指定的年份是否是闰年
#1.如果年份不能被100整除,只需要被4整除就是闰年 2.如果能够被100整除,必须被400整除才是闰年
result = calendar.isleap(1600)
print(result)

#leapdays() 获取指定年份之间闰年的个数
result = calendar.leapdays(2000,2017)
print(result)

#monthrange()获取一个月份的信息(周几开始,一共多少天)
result = calendar.monthrange(2017,11)
print(result)

#weekday() 根据指定年月日获取周几
result =calendar.weekday(2017,11,12)
print(result)

#timegm() 将时间元组转化为时间戳)
ttp = (1970,1,1,1,0,0,0,0,0)
result = calendar.timegm(ttp)
print(result)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值