python模块里的函数及说明,Python模块 time与datetime模块的函数说明及使用实例

time模块

模块time包含用于获取当前时间,操作时间和日期.从字符串中读取日期,将日期格式化为字符串的函数.

日期可表示为实数,也可表示为包含9个整数的元组

例如tuple(2018,12,24,12,2,56,-1,-1,-1)

------------------------------------------------------

索引 字段 值

0-----年-------如1999,2019

1-----月----------1~12

2-----日----------1~31

3-----时----------0~23

4-----分----------0~59

5-----秒----------0~61含闰一秒,闰二秒()

6-----星期-------0~6(0=星期一)

7-----儒略日----1~366

8-----夏令时----0,1,-1

使用-1时,mktime将自动转换可能正确的值

常用函数的使用

from time import *

new_time=mktime((2018,11,5,10,30,0,-1,-1,-1)) #时间元组->秒

>>>new_time

1541385000.0

>>>localtime(new_time) #秒->时间元组

time.struct_time(tm_year=2018, tm_mon=11, tm_mday=5, tm_hour=10, tm_min=30, tm_sec=0, tm_wday=0, tm_yday=309, tm_isdst=0)

>>>asctime(localtime(new_time)) #时间元组->字符串

'Mon Nov 5 10:30:00 2018'

>>>strptime('Mon Nov 5 10:30:00 2018') #字符串->时间元组

time.struct_time(tm_year=2018, tm_mon=11, tm_mday=5, tm_hour=10, tm_min=30, tm_sec=0, tm_wday=0, tm_yday=309, tm_isdst=-1)

>>>time() #当前秒数

1541385068.0643497

>>>asctime(localtime(time())) #当前时间字符串

'Mon Nov 5 10:31:21 2018'

>>>NOW=localtime(time()) #格式化显示当前时间

>>>"{}_{}_{}_{}_{}_{}".format(NOW.tm_year,NOW.tm_mon,NOW.tm_mday,NOW.tm_hour,NOW.tm_min,NOW.tm_sec)

'2018_11_26_10_14_10'

实例:随机返回指定范围内的多个日期

import random

from time import *

from pprint import *

start = mktime((2018, 1, 1, 0, 0, 0, -1, -1, -1))

end = mktime((2018, 12, 31, 23, 59, 59, -1, -1, -1))

random_time = []

for i in range(5):

time_str = asctime(localtime(random.uniform(start, end)))

random_time.append(time_str)

pprint(random_time)

#输出

['Wed Aug 29 01:18:44 2018',

'Sun Sep 16 02:44:16 2018',

'Sun Dec 30 12:53:29 2018',

'Wed May 2 04:00:02 2018',

'Sat Feb 17 03:39:50 2018']

datetime模块

datetime模块提供表示和处理日期和时间的一些类.此模块的大部分功能是关于创建和输出日期与信息的各种不同方式.其他的主要功能包括数学运算,如时间增量的比较和计算.

date对象

date对象代表由年,月,日组成的简单日期.

函数使用

from datetime import *

new_date = date(2018, 1, 1)

>>>new_date #显示日期

datetime.date(2018, 1, 1)

>>>new_date.today() #显示今天日期

datetime.date(2018, 11, 5)

>>>new_date.ctime() #返回字符串,与datetime.time.ctime()格式相同

'Mon Jan 1 00:00:00 2018'

>>>new_date.replace(1999,12) #替换年月日并返回新的日期

datetime.date(1999, 12, 1)

>>>new_date.timetuple() #将date转换为time模块中的time.struct_time对象

time.struct_time(tm_year=2018, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1)

>>>new_date.weekday() #返回一周内的星期 0-6

0

>>>random.uniform(date(2018,1,1),date(2018,12,31)) #随机返回日期

datetime.date(2018, 6, 25)

time对象

time对象用于表示包含小时,分,秒和微秒的时间.

new_time=time(12,15,20) #时,分,秒,微秒(microsecond),时区信息tzinfo()

new_time=time(hour=12,minute=15,second=20) #或者指定参数

>>>new_time

datetime.time(12, 15, 20)

>>>new_time.isoformat() #以""HH:MM:SS.mmmmmm""格式输出字符串

'12:15:20'

>>>new_time.replace(second=5) #替换部分值

datetime.time(12, 15, 5)

datetime对象

datetime对象用于表示日期和时间.

>>>datetime.now() #当前时间

datetime.datetime(2018, 11, 5, 11, 18, 18, 49217)

>>>dt = datetime(2018,11,5,11,20,30) #独立构造

>>>dt

datetime.datetime(2018, 11, 5, 11, 20, 30)

>>>dt=datetime

>>>dt=datetime.combine(date(2018,12,1),time(15,30,30)) #组合构造

datetime.datetime(2018, 12, 1, 15, 30, 30)

>>>dt.date(),dt.time() #获取date和time

(datetime.date(2018, 12, 1), datetime.time(15, 30, 30))

>>>dt.strftime("%Y-%m-%d %H:%M:%S") #格式化输出

'2018-12-01 15:30:30'

timedelta对象

timedelta对象表示两个日期或时间之间的差值.这些对象通常是使用

-运算符计算两个datetime实例之间的差值时的结果

datetime模块的一个重要特性是:它支持设计日期的数学运算.date和datetime对象(time不支持)都支持以下操作:

td = d1 - d2 返回timedelta对象

d2=d1 ± td 给date添加/减去timedelta

d1 < or <= or == or != or > or >= d2 日期比较

实例:时间倒计时

from datetime import *

from time import sleep

def counter():

h, m, s = [int(n) for n in input("设置倒计时时间:").split(" ")]

start = timedelta(hours=h, minutes=m, seconds=s)

end = timedelta(seconds=0)

one_sec = timedelta(seconds=1)

print("开始计时")

while start > end:

print(start)

sleep(1) #睡眠-1s

start = start - one_sec

print("计时完毕")

>>>counter()

设置倒计时时间:0 0 5

开始计时

0:00:05

0:00:04

0:00:03

0:00:02

0:00:01

计时完毕

实例:显示当前时间

def display_now():

while True:

sleep(1)

print(datetime.now().strftime("%H:%M:%S"))

>>display_now()

12:48:11

12:48:12

12:48:13

12:48:14

实例:使用calendar类显示某月日历

import calendar

import from pprint import *

>>>pprint(calendar.month(2018, 11))

(' November 2018\n'

'Mo Tu We Th Fr Sa Su\n'

' 1 2 3 4\n'

' 5 6 7 8 9 10 11\n'

'12 13 14 15 16 17 18\n'

'19 20 21 22 23 24 25\n'

'26 27 28 29 30\n')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值