time datetime

 

time and datetime

时间的三种变现方式:

时间戳方式      #1970年以后的时间,以秒的形式显示出来

元组方式          #也叫struct格式

格式化的字符串    #2018-4-16 12:49:30 这个就是格式化字符串

time模块的具体方法

 

time.time()

print(time.time())  #时间戳打印1970年到现在的秒数,####不能传参数
1 C:\Users\qiangql\AppData\Local\Programs\Python\Python36-32\python.exe C:/Users/qiangql/PycharmProjects/untitled1/time_test.py
2 1523854191.0834622
3 
4 Process finished with exit code 0
time.time()

time.altzone()

print(time.altzone)  #返回与utc时间的时间差,以秒计算
1 C:\Users\qiangql\AppData\Local\Programs\Python\Python36-32\python.exe C:/Users/qiangql/PycharmProjects/untitled1/time_test.py
2 -32400
3 
4 Process finished with exit code 0
time.altzone()

time.gmtime()

print(time.gmtime()) #获取当前的utf时间,以元组的形式表示出来,####可以传参数,参数为时间戳
1 C:\Users\qiangql\AppData\Local\Programs\Python\Python36-32\python.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.gmtime()

time.localtime()

print(time.localtime())  #获取当前时区的时间,以元组的形式表示出来,####可以传参数
1 C:\Users\qiangql\AppData\Local\Programs\Python\Python36-32\python.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.localtime()

time.acstime()

x=time.gmtime()
print(time.asctime(x))  #返回时间格式 Mon Apr 16 12:38:30 2018 ##可以传参数,参数为‘元组’,不传参数就是当前时间
print(time.asctime())   #不传参数返回了当前时间,跟上边的utc时间正好差了8小时
1 C:\Users\qiangql\AppData\Local\Programs\Python\Python36-32\python.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.acstime()

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:\Users\qiangql\AppData\Local\Programs\Python\Python36-32\python.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.ctime()

time.mktime()

x=time.localtime()
print(time.mktime(x))    #将struct(元组)时间对象转换成时间戳
1 C:\Users\qiangql\AppData\Local\Programs\Python\Python36-32\python.exe C:/Users/qiangql/PycharmProjects/untitled1/time_test.py
2 1523855990.0
3 
4 Process finished with exit code 0
time.mktime()

time.strftime()

x=time.gmtime()
print(time.strftime('%Y-%m-%d %H:%M:%S',x)) #根据‘格式’,把‘元组’转换成‘符合格式的时间字符串’
1 C:\Users\qiangql\AppData\Local\Programs\Python\Python36-32\python.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.strftime()

time.strptime()

print(time.strptime('2016-12-03 12:33:44','%Y-%m-%d %H:%M:%S')) #把‘符合格式的时间字符串’根据‘格式’转换成符合格式内容的的‘元组(struct)’
1 C:\Users\qiangql\AppData\Local\Programs\Python\Python36-32\python.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.strptime()

 

小结

#将元组转换为时间戳

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:\Users\qiangql\AppData\Local\Programs\Python\Python36-32\python.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

 

时间替换

datetime.replace()     #需要指定参数

time_1  = datetime.datetime.now()
print(time_1)
print(time_1.replace(minute=3,hour=2)) #时间替换
1 C:\Users\qiangql\AppData\Local\Programs\Python\Python36-32\python.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
datetime.replace()

 

posted @ 2018-04-16 13:55  人无远虑  阅读(231)  评论(0编辑  收藏  举报