众所皆知,每一个编程语言都有自己的时间类库,python也不例外用法十分简单
最基本的类,time类
time基本函数介绍
import time
print time.asctime() #如果未传入一个tuple或一个time_struct就是使用当前的时间,返回一个24字长的时间字符串 就这个Mon Feb 20 19:41:22 2017
print time.time() # 毫秒值
print time.ctime() # 当前的时间字符串
print time.clock() # 当前cpu的时钟
print time.gmtime() # 当前的国际时间
print time.localtime() #当前的时区时间
time.sleep(0.1) #可以使当前的线程睡眠的秒数,可以精确到毫秒至少,更多的没测试了
print time.mktime(time.localtime()) # 将一个time_struct 转换成对应的毫秒值
# time struct
# time.struct_time(tm_year=2017, tm_mon=2, tm_mday=20, tm_hour=11, tm_min=21, tm_sec=31, # tm_wday=0, tm_yday=51, tm_isdst=0)
# 从年 , 月, 日, 时,分,秒
# 对应 tm_year , tm_mon , tm_mday , tm_min , tm_sec , tm_wday,tm_yday,tm_isdst
# 可以直接配合time.lcoaltime()获取time_struct 然后获得某一属性
t = time.localtime()
print t.tm_mday
# 格式化的时间
# strftime() 是将我们的time_struct(gmtime , localtime)转换成对应格式的字符串
print time.strftime("%Y %m %d",time.localtime())
# 对应的字母例举几种例子,详情去看api ,%Y对应年 %m 对应月 %d对应天 %H对应小时 %M对应分钟 %S对应秒
# strptime() 是将我们的字符串的时间按照一点的格式变换成对应的time_struct
print time.strptime("2017 2/20 19:49:20","%Y %m/%d %H:%M:%S")
个人认为比较常用的函数是time , sleep(可以做定时任务), localtime , strftime , strptime
在此上面的datetime中的datetime , date , time, timedelta就一起讲了,因为他们几个很相似,此处不涉及calendar。
#%%
import time
from datetime import timedelta , date , datetime
#%%
delta1 = timedelta(days=1,seconds=10) #初始化可以使用days,weeks,hours,seconds,minutes,microseconds等多种单位
delta2 = timedelta(days=9)
print delta2 - delta1
print delta1 + delta2
# date类
today = date.today() # 返回今天的日期
print today
yesterday = today - delta1 # 注意此处的时间类可以相减就可以得到昨天的日期
print yesterday
# 时间之间是可以比较的,date , datetime , time 之间都可以
if today > yesterday:
print 'yes'
else:
print 'no'
obj = date(year=2015,month=8,day=12) # date的构造函数
obj = date.fromtimestamp(time.time()) # 从毫秒值构造yigedate对象
# datetime类具有详细的时间,其实datetime中也有一个time类,但是这边大同小异就不列举了
obj = datetime(year=2016,month=6,day=1,hour=20,minute=20,second=13,microsecond=13) # datetime的构造函数
obj = datetime.fromtimestamp(time.time()) # 从毫秒值构造
obj = datetime.today() # 今天
obj = datetime.now() # 当前时间
# 同样的,date,datetime,time都具有strftime ,strptime这两个格式化的时间输出。
# 如果需要使用datetime,date的毫秒值,可以使用
time.mktime(date.timetuple()) # 获得当前date对象的time_struct对象然后转换成对应的毫秒值