time模块和datetime模块

time模块

时间戳是从1970年1月1日0时整开始计算的秒的偏移量。即当是时,时间戳为0,再往前负增加。

1,获取当前时间戳

import time
time.time()
1525679844.273

2,获取给定时间戳的本地时间(当前时区)(未提供时间戳则默认当前时间戳)——结构化时间(元组方式)

import time
t=time.localtime()
print(t)
t.tm_year                  #获取年
time.struct_time(tm_year=2018, tm_mon=5, tm_mday=7, tm_hour=16, tm_min=11, tm_sec=17, tm_wday=0, tm_yday=127, tm_isdst=0)





2018

另一种时间戳转结构化时间的方式——-转为utc时间(英国格林威治时间)

import time
time.gmtime()
time.struct_time(tm_year=2018, tm_mon=5, tm_mday=7, tm_hour=8, tm_min=7, tm_sec=24, tm_wday=0, tm_yday=127, tm_isdst=0)

3,结构化时间转时间戳

import time
print(time.mktime(time.localtime()))
1525681030.0

4,线程推迟指定的时间运行。时间单位为秒

import time
time.sleep(1)

*将结构化时间转为以下格式

import time
time.asctime()     #参数默认默认当前time.localtime()
'Mon May  7 16:27:31 2018'

*将时间戳转化为以下格式

import time
time.ctime()       #参数默认当前时间time.time()
'Mon May  7 16:26:38 2018'

5,将结构化时间转化为字符串时间(前参为格式,后参结构化时间)

import time
time.strftime('%x %X',time.localtime())
'05/07/18 16:42:10'

6,将字符串时间转为结构化时间(字符串时间,格式)

time.strptime('2016:12:24:17:50:36','%Y:%m:%d:%X')
time.struct_time(tm_year=2016, tm_mon=12, tm_mday=24, tm_hour=17, tm_min=50, tm_sec=36, tm_wday=5, tm_yday=359, tm_isdst=-1)

%Y 表示年
%y 表示年但会省略前两位数字
%m 表示月份
%d 表示天
%H 表示小时
%M 表示分钟
%S 表示秒
%X 表示固定的时间格式
%x 表示固定的日格式
%U 表示一年中第几周
%p 表示am、pm
%w 表示周几 0(周日)至6(周六)
以上为常用格式

转换逻辑:
字符串时间—(time.strptime)—>结构化时间—(time.mktime)—>时间戳
时间戳—(time.localtime)—>结构化时间—(time.strftime)—>字符串时间

例1:将1997年10月1日12时01分转换为时间戳

import time
t1 = time.strptime('10/01/97 12:01:00','%x %X')
print(t1)
t2 = time.mktime(t1)
print(t2)
time.struct_time(tm_year=1997, tm_mon=10, tm_mday=1, tm_hour=12, tm_min=1, tm_sec=0, tm_wday=2, tm_yday=274, tm_isdst=-1)
875678460.0

例2:将时间戳875678460转换为字符串时间

import time
t1 = time.localtime(875678460)
t2 = time.strftime('%Y-%m-%d %H:%M:%S',t1)
print(t2)
1997-10-01 12:01:00

datetime模块

import datetime
t1 = datetime.datetime.now()                  #返回当前datetime
print(t1)
print(t1.year)
print(t1.strftime('%x %X'))                    #转换字符串时间
2018-05-07 17:22:31.585000
2018
05/07/18 17:22:31
import datetime
datetime.date.fromtimestamp(875678460)               #时间戳转日期
datetime.date(1997, 10, 1)

时间运算

import datetime
print(datetime.datetime.now() + datetime.timedelta(1))         #默认为天
print(datetime.datetime.now() - datetime.timedelta(hours=1))   #minutes / seconds
2018-05-08 17:27:37.121000
2018-05-07 16:27:37.121000

时间替换

import datetime
t1 = datetime.datetime.now() 
t1.replace(year = 2012,month = 1 ,day = 1)
datetime.datetime(2012, 1, 1, 17, 31, 10, 766000)

猜你喜欢

转载自blog.csdn.net/marvin_wind/article/details/80229013