Python-时间模块

(1)日历模块

calendar()

获取指定年份的日历字符串

格式:calendar.calendar(年份,w=2,l=1,c=6,m=3);    返回值:字符串;

w表示 2个日期之间的间隔字符长度;    l表示 一个周占用几个行高度;

c表示2个月份之间的空白间隔;             m表示一行显示几个月;

import calendar

ren = calendar.calendar(2018,w=2,l=1,c=6,m=3)

print(ren)

效果图:

 

month()

获取指定年月的日历字符串

格式:calendar.month(年,月,w=2,l=1);    返回值:字符串

import calendar

ren = calendar.month(2018,12,w=2,l=1)

print(ren)

效果图:

 

monthcalendar()

获取一个年月的矩阵列表

格式:calendar.monthcalendar(年,月);    返回值:二级列表;

结果中0表示不是该月的数值,1-31才是当月信息

import calendar

ren = calendar.monthcalendar(2018,12)

for page in ren:
    print(page)

效果图:

 

isleap()

检测指定年份是不是闰年

格式:calendar.isleap(年份);    返回值:布尔值;

import calendar

ren = calendar.isleap(2018)
print(ren)
# 结果: False

red = calendar.isleap(2016)
print(red)
# 结果: True

 

leapdays()

检测指定年份之间的闰年个数

格式:calendar.leapdays(开始年份,结束年份);    返回值:整数;    注意:包含开始年份不包含结束年份;

import calendar

ren = calendar.leapdays(1996,2018)
print(ren)

# 结果: 6
# 分别是: 1996,2000,2004,2008,2012,2016年是闰年,共有6个

 

monthrange()

获取一个月的周几开始及当月天数

格式:calendar.monthrange(年,月);    返回值:元组(周几,天数);    注意:0-6表示周一到周天;

import calendar

ren = calendar.monthrange(2018,12)
print(ren)

# 结果: (5, 31)

 

weekday()

根据年月日计算周几

格式:calendar.weekday(年,月,日);    返回值:整型;    注意:0-6表示周一到周天;

import calendar

ren = calendar.weekday(2018,12,31)
print(ren)

# 结果: 0

 

(2)时间戳

时间戳是一种用于表示时间的方式。从1970年1月1日0时0分0秒0毫秒开始到指定时间的秒数。世间戳也叫做unix时间戳,1970年1月1日成为unix元年。

作用:是为了方便时间的统一运算。

1.从1970年1月1日开始计算。

2.能够使用到2038年的某一天

3.如果使用太远的未来或者1970年以前的时间可能出现异常

 

(3)UTC时间

UTC时间又称之为世界协调时间。特指格林尼治天文台所在位置的时间也叫做格林尼治时间。

中国的时区是东八区,和世界协调时间差了8个小时,多个八个小时

 

(4)夏令时

夏令时就是通过在夏季将时间调快一小时,来提醒大家早睡早起身体好,节省蜡烛!

每天的时钟变成了25个小时,注意本质还是24个小时

 

(5)时间元组struct_time

格式:(年,月,日,时,分,秒,周几,一年中的第几天,是否是夏令时

import time

ren = time.localtime()
print(ren)
# 结果: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=31, tm_hour=21, tm_min=4, tm_sec=51, tm_wday=0, tm_yday=365, tm_isdst=0)

print(type(ren))
# 类型: <class 'time.struct_time'>
索引名称内容取值
0tm_year年份
1tm_mon1~12
2tm_mday1~31
3tm_hour1~23
4tm_min1~59
5tm_sec1~61(60闰秒,61是历史保留)
6tm_wday周几0~6
7tm_yday一年中的第几天1~366
8tm_isdst夏令时-1, 0, 1, -1是决定是否为夏令时的旗帜

 

 

 

 

 

 

 

 

 

 

(6)时间模块的函数 

time()

获取当前本地的时间戳

格式:time.time();   返回值:浮点数时间戳;

import time

ren = time.time()
print(ren)

# 结果如: 1546263088.7501929

 

 localtime()

格式:time.localtime();    返回值:本地时间元组

格式:time.localtime(时间戳);    返回值:指定时间戳的本地时间元组

import time

# 获取时间戳
res = time.time()
print(res)

# 获取时间元组
ren = time.localtime()
print(ren)

# 把时间戳转为时间元组
red = time.localtime(res)
print(red)

效果图: 

 

asctime()

返回一个正常的可读的时间字符串

格式:time.asctime(时间元组);    返回值:时间字符串;

import time

ren = time.localtime()  # 获取时间元组
red = time.asctime(ren)
print(red)

# 结果: Mon Dec 31 21:25:48 2018

 

gmtime() 

格式:time.gmtime();    返回值:当前UTC时间元组;

格式:time.gmtime(时间戳);    返回值:指定时间戳的UTC时间元组;

import time,datetime

ren = time.gmtime() # 当前UTC时间元组
print(ren)
# 结果: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=31, tm_hour=13, tm_min=39, tm_sec=22, tm_wday=0, tm_yday=365, tm_isdst=0)

res = datetime.datetime.strptime('Dec 30, 2018 03:55:12 PM', '%b %d, %Y %I:%M:%S %p').timestamp()   # 获取指定时间的时间戳
red = time.gmtime(res)  # 指定时间戳的UTC时间元组
print(red)
# 结果: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=30, tm_hour=7, tm_min=55, tm_sec=12, tm_wday=6, tm_yday=364, tm_isdst=0)

 

ctime()

格式: time.ctime();    返回值:时间格式字符串;

格式: time.ctime(时间戳);    返回值:时间格式字符串;

import time,datetime

ren = time.ctime() 
print(ren)
# 结果: Mon Dec 31 21:43:43 2018

# 获取指定时间的时间戳
res = datetime.datetime.strptime('Dec 30, 2018 03:55:12 PM', '%b %d, %Y %I:%M:%S %p').timestamp()   
red = time.ctime(res)  
print(red)
# 结果: Sun Dec 30 15:55:12 2018

 

mktime()

使用时间元组制作时间戳

格式:time.mktime(时间元组);    返回值:时间戳;

注意:按照本地时间来进行计算,如果想按照UTC时间计算,则是calendar.timegm()

import time,calendar

res = time.localtime()  # 获取当前时间元组
ren = time.mktime(res) 
print(ren)
# 结果如: 1546264020.0

red = calendar.timegm(res)
print(red)
# 结果如: 1546292820

 

sleep()

程序睡眠,使得程序在此处等待指定的时间

格式:time.sleep(时间秒数);    返回值:无;

 

 strftime()

import time,datetime

# 格式化输出时间字符串
ren = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print(ren)
# 结果如: 2018-12-31 21:51:32

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值