#__Author: "Skiler Hao"
#date: 2017/2/15 11:06
"""
主要是测试和练习时间模块的使用
时间主要有字符串格式、时间戳 和 结构化时间元祖
Wed Feb 15 11:40:23 2017
1463846400.0
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=15, tm_hour=11, tm_min=40, tm_sec=23, tm_wday=2, tm_yday=46, tm_isdst=0)
时间元祖是时间类型转化的关键
"""
import datetime
import time
#获取当前的时间,以三种格式展示出来
print(time.asctime()) #返回时间字符串Wed Feb 15 11:15:21 2017
print(time.localtime()) # 返回的是<class ‘time.struct_time‘>,例如time.struct_time(tm_year=2017, tm_mon=2, tm_mday=15, tm_hour=11, tm_min=21, tm_sec=2, tm_wday=2, tm_yday=46, tm_isdst=0)
print(type(time.time())) #返回的是float类型的当前时间戳
time.ctime()
#--------------时间类型转换
string_2_struct = time.strptime("2016/05/22","%Y/%m/%d") #将字符串转化成时间元祖
print(time.gmtime(time.time())) #将时间戳转换成时间元祖格式
struct_2_stamp = time.mktime(string_2_struct) #将时间元祖转化成时间戳
print(struct_2_stamp)
print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) ) #将utc struct_time格式转成指定的字符串格式
#------------其他用途的时间函数
print(time.process_time()) #处理器计算时间
time.sleep(2) #睡眠指定的时间
#-------------datetime模块的使用和说明--------------------
‘‘‘
datetime中有time,date,datetime,timedelta四个类
‘‘‘
print(datetime.datetime.now()) ##返回datetime.datetime类 2017-02-15 15:34:29.788630,可以计算两个时间的差值
print(datetime.date.fromtimestamp(time.time())) #时间戳直接转化成日期格式 2017-02-15
print(datetime.datetime.strptime(‘12:13:50‘,‘%H:%M:%S‘)) #将字符串转换成datetime格式
#时间模块的加减
print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天
print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天
print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3个小时
print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+3个小时
#-------------------------计算相识时间-------------
def firstTimeToNow():
now = datetime.datetime.now()
first_time_tuple = datetime.datetime.strptime("2017/01/24","%Y/%m/%d")
return (now - first_time_tuple).days
print("相见相识,第"+str(firstTimeToNow())+"天")