time模块
- 格式化时间只能用字符,不能用中文
初识time
import time
tick = time.time() # 1970年1月1日到现在的秒数
print(tick)
localtime = time.localtime(tick)
print(localtime) # 本地化时间
acttime = time.asctime(localtime) # 格式化时间
print(acttime)
ctime = time.ctime() # 和上面的等价
print(ctime)
print(time.strftime("%Y-%m-%d %H:%M:%S")) # 格式化时间
# --------------------------
"""
1502433905.8102489
time.struct_time(tm_year=2017, tm_mon=8, tm_mday=11, tm_hour=14, tm_min=45, tm_sec=5, tm_wday=4, tm_yday=223, tm_isdst=0)
Fri Aug 11 14:45:05 2017
Fri Aug 11 14:45:05 2017
2017-08-11 14:52:31
"""
格式化时间
import time
# 格式化成2016-03-20 11:45:39形式
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# 格式化成Sat Mar 28 22:24:24 2016形式
print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
# 将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2016"
print (time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))
以上实例输出结果:
2016-04-07 10:29:46
Thu Apr 07 10:29:46 2016
1459175064.0
- %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 当前时区的名称
- %% %号本身
一些time方法
time方法 |
描述 |
time.altzone() |
返回格林威治西部的夏令时地区的偏移秒数 |
time.asctime(time.localtime()) |
Thu Apr 7 10:36:20 2016 |
time.clock() |
和time.time()类似,比time.time()精确 |
time.ctime() |
Thu Apr 7 10:51:58 2016 |
time.gmtime(time.time()) |
返回一个time元组格林时间 |
time.localtime(time.time()) |
返回一个time元组当地时间 |
time.mktime(tupletime) |
接收一个t=(2016,2,17,17,3,38,1,48,0)返回时间戳 |
time.sleep(seconds) |
时间中止一段时间 |
time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) |
返回格式化时间2016-04-07 11:18:05 |
time.strptime(str,fmt='%a %b %d %H:%M:%S %Y') |
格式化时间转元组时间 |
time.time() |
返回当前时间戳 |
time.tzset() |
根据环境变量TZ重新初始化时间相关设置 |
属性
time属性 |
描述 |
time.timezone |
当地时区距离格林威治的偏移秒数 |
time.tzname |
根据情况的不同而不同的字符串 |
显示日历
import calendar
cal = calendar.month(2017, 8) # 打印当前月份的日历
print(type(cal)) # str类型
calendar方法
calendar方法 |
描述 |
calendar.calendar(year,w=2,l=1,c=6) |
3个月一行,间隔距离为c,每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数 |
calendar.firstweekday() |
貌似都是返回0、星期一 |
calendar.isleap(year) |
返回是否闰年True、False |
calendar.leapdays(y1,y2) |
返回在Y1,Y2两年之间的闰年总数。 |
calendar.month(year,month,w=2,l=1) |
返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。 |
calendar.monthcalendar(year,month) |
返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。 |
calendar.monthrange(year,month) |
返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。 |
calendar.prcal(year,w=2,l=1,c=6) |
相当于 print calendar.calendar(year,w,l,c). |
calendar.prmonth(year,month,w=2,l=1) |
相当于 print calendar.calendar(year,w,l,c)。 |
calendar.setfirstweekday(weekday) |
设置每周的起始日期码。0(星期一)到6(星期日) |
calendar.timegm(tupletime) |
和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间辍(1970纪元后经过的浮点秒数 |
calendar.weekday(year,month,day) |
返回给定日期的日期码。0(星期一)到6(星期日)月份为 1(一月) 到 12(12月) |
datetime模块
- 可直接进行时间加减
datetime模块使用
import datetime
date1 = datetime.datetime.now()
print(datetime.datetime.now()) # 当前时间
date2 = datetime.datetime(2017,6,12,3,4,5,34213) # 创建一个时间
print(date2-date1) # 计算时间差,重载了-
print((date2-date1).days) # 计算天数
print((date2-date1).seconds) # 计算除天之外的秒数
datetime.datetime.strptime("2017-07-05 09:08:07","%Y-%m-%d %H:%M:%S")
# 将当前时间转换成字符串
date4 = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(type(date4)) # str
datetime的方法
- datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]]) -- 构造函数,返回一个datetime对象。year, month, day为必选参数
- astimezone(...) -- 根据给定的timezone对象,返回转换为本地时区的timezone对象。
- combine(...) -- 根据给定date, time对象合并后,返回一个对应值的datetime对象。
- ctime(...) -- 返回ctime格式的字符串。
- date(...) -- 返回具有相同year, month, day的date对象
- dst(...) -- 返回self.tzinfo.dst(self).
- fromtimestamp(...) -- 根据时间戳数值,返回一个datetime对象。
- isoformat(...) -- 返回ISO 8601格式的字符串,如:YYYY-MM-DDTHH:MM:SS[.mmmmmm][+HH:MM]
- now(...) -- 根据给定的时区,返回当地的当前时间。
- replace(...) -- 返回一个替换了指定日期时间字段的新datetime对象
- strptime(...) -- 根据string, format2个参数,返回一个对应的datetime对象。
- time(...) -- 返回一个带有相同time,但没有tzinfo的time对象。
- timetuple(...) -- 返回一个时间元素, 等价于time.localtime().
- timetz(...) -- 返回一个带有相同time和tzinfo的time对象。
- tzname(...) -- 返回self.tzinfo.tzname(self).
- utcfromtimestamp(...) -- 返回UTC时间戳的datetime对象,时间戳值为time.time()
- utcnow(...) -- 返回UTC当前时间的datetime对象.
- utcoffset(...) -- Return self.tzinfo.utcoffset(self).
- utctimetuple(...) -- 返回UTC时间元组对象, 等价于time.localtime().