python标准库time、datetime、calendar、random的使用

time

查看time库中有哪些方法

>>> import time
>>> dir(time)
['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 
'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic',
 'perf_counter', 'process_time','sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname']

time():返回当前时间戳

ps:时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年
时间戳的概念:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
时间戳详细解释

>>> import time
>>> time.time()
1554278877.2749991

mktime():以struct_time转换为时间戳

>>> time.mktime(time.localtime())
1554283494.0

localtime():获取当前时间

ps:从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。

>>> import time
>>> time.localtime()
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=3, tm_hour=16, tm_min=16, tm_sec=47, tm_wday=2, tm_yday=93, tm_isdst=0)

返回结果说明: 年、月、日、小时、分钟、秒、星期、这一年的第几天、夏令时标识符
(实行夏令时的时候,tm_isdst为正。不实行夏令时的时候,tm_isdst为0;不了解情况时,tm_isdst()为负)

asctime():简单获取格式化时间

ps:你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime()

>>>import time
>>> localtime = time.asctime(time.localtime())
>>> localtime
'Wed Apr  3 16:27:51 2019'

strftime():格式化日期

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"))

代码是直接copy手册的 不过该代码支持Python2.0+ 如果您的Python是Python3.0+ 可以在使用print函数时候加 () 即(print())

clock():检测程序运行时间

>>> import time
>>> time.clock()
8.306783092524726e-06  #第一次调用运行时间
>>> time.clock() 
10.962511110322387     #与第一次调用时间间隔
>>> time.clock()
24.14607327035785      #与第一次调用时间间隔

sleep():延时

ps:延时单位为 seconds(秒)

>>> import time
>>> time.clock();time.sleep(2);time.clock()
3.775810496602148e-07
2.052735612462893

ctime():将时间戳转换成时间字符串

ps:默认为当前时间

>>>import time
>>> time.ctime()
'Wed Apr  3 17:15:15 2019'

gmtime():换成UTC时区(0时区),再标准输出

ps:将一个时间戳转换成一个UTC时区(0时区)的struct_time,如果seconds参数未输入,则以当前时间为转换标准

>>> import time
>>> 
time.localtime()
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=3, tm_hour=17, tm_min=18, tm_sec=0, tm_wday=2, tm_yday=93, tm_isdst=0)
>>> time.gmtime()
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=3, tm_hour=9, tm_min=18, tm_sec=22, tm_wday=2, tm_yday=93, tm_isdst=0)

>>> time.gmtime(8)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=8, tm_wday=3, tm_yday=1, tm_isdst=0)

>>> time.gmtime(1)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0)

strptime():将格式化字符转换成数组形式

2009-03-20 11:45:39 对应的格式化字符串为:%Y-%m-%d %H:%M:%S
Sat Mar 28 22:24:24 2009 对应的格式化字符串为:%a %b %d %H:%M:%S %Y

datetime

查看datetime库中有哪些方法

>>> import datetime
>>> dir(time)
[['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__',
 '__spec__', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']]

datetime的使用

import datetime
i = datetime.datetime.now()
print ("当前的日期和时间是 %s" % i)
print ("ISO格式的日期和时间是 %s" % i.isoformat() )
print ("当前的年份是 %s" %i.year)
print ("当前的月份是 %s" %i.month)
print ("当前的日期是  %s" %i.day)
print ("dd/mm/yyyy 格式是  %s/%s/%s" % (i.day, i.month, i.year) )
print ("当前小时是 %s" %i.hour)
print ("当前分钟是 %s" %i.minute)
print ("当前秒是  %s" %i.second)

=================== RESTART: C:/Users/xts/Desktop/haha.py ===================
当前的日期和时间是 2019-04-03 18:35:25.779804
ISO格式的日期和时间是 2019-04-03T18:35:25.779804
当前的年份是 2019
当前的月份是 4
当前的日期是  3
dd/mm/yyyy 格式是  3/4/2019
当前小时是 18
当前分钟是 35
当前秒是  25

calendar

查看calendar库中有哪些方法

>>> import calendar
>>> dir(calendar)
['Calendar', 'EPOCH', 'FRIDAY', 'February', 'HTMLCalendar', 'IllegalMonthError', 'IllegalWeekdayError', 'January', 'LocaleHTMLCalendar', 'LocaleTextCalendar', 'MONDAY', 'SATURDAY', 'SUNDAY', 'THURSDAY', 'TUESDAY', 'TextCalendar', 'WEDNESDAY', 
'_EPOCH_ORD', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_colwidth', '_locale', '_localized_day', '_localized_month', '_spacing', 
'c', 'calendar', 'datetime', 'day_abbr', 'day_name', 'different_locale', 'error', 'firstweekday', 'format', 'formatstring',
 'isleap', 'leapdays', 'main', 'mdays', 'month', 'month_abbr', 'month_name', 'monthcalendar', 
 'monthrange', 'prcal', 'prmonth', 'prweek', 'repeat', 'setfirstweekday', 'sys', 'timegm', 'week', 'weekday', 'weekheader']

对该模块大致介绍

此模块的函数都是日历相关的,例如打印某月的字符月历。
星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数

常见方法使用如下

1calendar.calendar(year,w=2,l=1,c=6)
返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
2calendar.firstweekday( )
返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。
3calendar.isleap(year)
是闰年返回 True,否则为 False。
>>> import calendar
>>> print(calendar.isleap(2000))True
>>> print(calendar.isleap(1900))False
4calendar.leapdays(y1,y2)
返回在Y1,Y2两年之间的闰年总数。
5calendar.month(year,month,w=2,l=1)
返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
6calendar.monthcalendar(year,month)
返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。
7calendar.monthrange(year,month)
返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。
8calendar.prcal(year,w=2,l=1,c=6)
相当于 print calendar.calendar(year,w,l,c).
9calendar.prmonth(year,month,w=2,l=1)
相当于 print calendar.calendar(year,w,l,c)。
10calendar.setfirstweekday(weekday)
设置每周的起始日期码。0(星期一)到6(星期日)。
11calendar.timegm(tupletime)
和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间戳(1970纪元后经过的浮点秒数)。
12calendar.weekday(year,month,day)
返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。

常用方法表转载地址calendar

random

基本栗子

>>> random()                             # Random float:  0.0 <= x < 1.0
0.37444887175646646

>>> uniform(2.5, 10.0)                   # Random float:  2.5 <= x < 10.0
3.1800146073117523

>>> expovariate(1 / 5)                   # Interval between arrivals averaging 5 seconds
5.148957571865031

>>> randrange(10)                        # Integer from 0 to 9 inclusive
7

>>> randrange(0, 101, 2)                 # Even integer from 0 to 100 inclusive
26

>>> choice(['win', 'lose', 'draw'])      # Single random element from a sequence
'draw'

>>> deck = 'ace two three four'.split()
>>> shuffle(deck)                        # Shuffle a list
>>> deck
['four', 'two', 'ace', 'three']

>>> sample([10, 20, 30, 40, 50], k=4)    # Four samples without replacement
[40, 10, 50, 30]

详细内容可见官网(之后会尽量翻译更新)
random

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值