time and datetime
时间的三种变现方式:
时间戳方式 #1970年以后的时间,以秒的形式显示出来
元组方式 #也叫struct格式
格式化的字符串 #2018-4-16 12:49:30 这个就是格式化字符串
time模块的具体方法
time.time()
print(time.time()) #时间戳打印1970年到现在的秒数,####不能传参数
1 C:UsersqiangqlAppDataLocalProgramsPythonPython36-32python.exe C:/Users/qiangql/PycharmProjects/untitled1/time_test.py 2 1523854191.0834622 3 4 Process finished with exit code 0
time.altzone()
print(time.altzone) #返回与utc时间的时间差,以秒计算
1 C:UsersqiangqlAppDataLocalProgramsPythonPython36-32python.exe C:/Users/qiangql/PycharmProjects/untitled1/time_test.py 2 -32400 3 4 Process finished with exit code 0
time.gmtime()
print(time.gmtime()) #获取当前的utf时间,以元组的形式表示出来,####可以传参数,参数为时间戳
1 C:UsersqiangqlAppDataLocalProgramsPythonPython36-32python.exe C:/Users/qiangql/PycharmProjects/untitled1/time_test.py 2 time.struct_time(tm_year=2018, tm_mon=4, tm_mday=16, tm_hour=6, tm_min=4, tm_sec=53, tm_wday=0, tm_yday=106, tm_isdst=0) 3 4 Process finished with exit code 0
time.localtime()
print(time.localtime()) #获取当前时区的时间,以元组的形式表示出来,####可以传参数
1 C:UsersqiangqlAppDataLocalProgramsPythonPython36-32python.exe C:/Users/qiangql/PycharmProjects/untitled1/time_test.py 2 time.struct_time(tm_year=2018, tm_mon=4, tm_mday=16, tm_hour=14, tm_min=6, tm_sec=19, tm_wday=0, tm_yday=106, tm_isdst=0) 3 4 Process finished with exit code 0
time.acstime()
x=time.gmtime() print(time.asctime(x)) #返回时间格式 Mon Apr 16 12:38:30 2018 ##可以传参数,参数为‘元组’,不传参数就是当前时间 print(time.asctime()) #不传参数返回了当前时间,跟上边的utc时间正好差了8小时
1 C:UsersqiangqlAppDataLocalProgramsPythonPython36-32python.exe C:/Users/qiangql/PycharmProjects/untitled1/time_test.py 2 Mon Apr 16 05:11:46 2018 #带gmtime参数 3 Mon Apr 16 13:11:46 2018 #不带参数的本地时间 4 5 Process finished with exit code 0
time.ctime()
print(time.ctime(23333)) #返回时间格式 Thu Jan 1 14:28:53 1970 ##可以传参数,参数为时间戳,不传参数就是当前时间 print(time.ctime()) #返回 Mon Apr 16 13:15:51 2018 的时间格式 #这个acstime,ctime就是个天,月 , 时,分,秒,年的时间格式,acstime是元组参数,ctime是时间戳参数
1 C:UsersqiangqlAppDataLocalProgramsPythonPython36-32python.exe C:/Users/qiangql/PycharmProjects/untitled1/time_test.py 2 Thu Jan 1 14:28:53 1970 3 Mon Apr 16 13:15:51 2018 4 5 Process finished with exit code 0
time.mktime()
x=time.localtime() print(time.mktime(x)) #将struct(元组)时间对象转换成时间戳
1 C:UsersqiangqlAppDataLocalProgramsPythonPython36-32python.exe C:/Users/qiangql/PycharmProjects/untitled1/time_test.py 2 1523855990.0 3 4 Process finished with exit code 0
time.strftime()
x=time.gmtime() print(time.strftime('%Y-%m-%d %H:%M:%S',x)) #根据‘格式’,把‘元组’转换成‘符合格式的时间字符串’
1 C:UsersqiangqlAppDataLocalProgramsPythonPython36-32python.exe C:/Users/qiangql/PycharmProjects/untitled1/time_test.py 2 2018-04-16 05:24:51 3 4 Process finished with exit code 0
time.strptime()
print(time.strptime('2016-12-03 12:33:44','%Y-%m-%d %H:%M:%S')) #把‘符合格式的时间字符串’根据‘格式’转换成符合格式内容的的‘元组(struct)’
1 C:UsersqiangqlAppDataLocalProgramsPythonPython36-32python.exe C:/Users/qiangql/PycharmProjects/untitled1/time_test.py 2 time.struct_time(tm_year=2016, tm_mon=12, tm_mday=3, tm_hour=12, tm_min=33, tm_sec=44, tm_wday=5, tm_yday=338, tm_isdst=-1) 3 4 Process finished with exit code 0
小结
#将元组转换为时间戳
time.mktime()
#将时间戳转换为元组
time.gmtime()
time.locatime()
#将元组转换成指定格式(格式化字符串)
strftime()
#将指定格式(格式化字符串)转换成元组
strptime()
如下图
acstime就是把元组转换成 天,月 , 时,分,秒,年的时间格式
ctime就是把时间戳转换成 天,月 , 时,分,秒,年的时间格式
格式参照
%a 本地(locale)简化星期名称 %A 本地完整星期名称 %b 本地简化月份名称 %B 本地完整月份名称 %c 本地相应的日期和时间表示 %d 一个月中的第几天(01 - 31) %H 一天中的第几个小时(24小时制,00 - 23) %I 第几个小时(12小时制,01 - 12) %j 一年中的第几天(001 - 366) %m 月份(01 - 12) %M 分钟数(00 - 59) %p 本地am或者pm的相应符 一 %S 秒(01 - 61) 二 %U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。 三 %w 一个星期中的第几天(0 - 6,0是星期天) 三 %W 和%U基本相同,不同的是%W以星期一为一个星期的开始。 %x 本地相应日期 %X 本地相应时间 %y 去掉世纪的年份(00 - 99) %Y 完整的年份 %Z 时区的名字(如果不存在为空字符) %% ‘%’字符
datetime
时间加减
datetime.timedelta() #有参数,默认为日,可以指定 时 ,分 ,秒 等
import datetime print(datetime.datetime.now()) #返回当前时间,以字符串的形式 print(datetime.date.fromtimestamp(time.time())) #把当前的时间戳转换成日期格式(字符串形式) print(datetime.date.fromtimestamp(2333)) #指定时间戳转换成日期格式 #日期加减 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小时
1 C:UsersqiangqlAppDataLocalProgramsPythonPython36-32python.exe C:/Users/qiangql/PycharmProjects/untitled1/time_test.py 2 2018-04-16 13:48:27.290047 3 2018-04-16 #时间戳是当前时间 4 1970-01-01 #时间戳是2333 5 2018-04-19 13:48:27.290047 6 2018-04-13 13:48:27.290047 7 2018-04-16 16:48:27.290047 8 2018-04-16 14:18:27.290047 9 10 Process finished with exit code 0
时间替换
datetime.replace() #需要指定参数
time_1 = datetime.datetime.now() print(time_1) print(time_1.replace(minute=3,hour=2)) #时间替换
1 C:UsersqiangqlAppDataLocalProgramsPythonPython36-32python.exe C:/Users/qiangql/PycharmProjects/untitled1/time_test.py 2 2018-04-16 13:52:12.023518 3 2018-04-16 02:03:12.023518 4 5 Process finished with exit code 0