​time.localtime()​​​ 本地当前时间
​​​time.time​​ 1970到现在的时间

一、time 模块的转化

  • 日期转时间戳
方式一
import time
t = '2020-4-06 00:00:00'
s_t = time.strptime(t, "%Y-%m-%d %H:%M:%S") # 返回元祖
mkt = int(time.mktime(s_t))
print(mkt)
方式二
d_time = datetime.datetime.now()
un_time = time.mktime(dtime.timetuple())
print(un_time)
将unix时间戳转换为“当前时间”格式
times = datetime.datetime.fromtimestamp(un_time)
1586102400
  • 时间戳转日期
t2 = 1586102400
s_l = time.localtime(t2)
ts = time.strftime("%Y-%m-%d %H:%M:%S", s_l)
print(ts )

应用示例

场景: 最近本人台电视台某节目每天两点至两点半播放,看着带劲,想抓取下来
其中有个参数 start_time end_time 将他们固定生成,定时抓取
import time
start_time = int(time.mktime(time.strptime(time.strftime("%Y-%m-%d 14:00:00", time.localtime()), "%Y-%m-%d %H:%M:%S")))
print(start_time)

string转datetime

str = '2012-11-19'
date_time = datetime.datetime.strptime(str,'%Y-%m-%d')
date_time
dt = datetime.datetime.fromtimestamp(time.mktime(time.strptime(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())), "%Y-%m-%d %H:%M:%S")))

  • 北京时间字符串转化为UTC时间的datetime对象
# 构造出没有时区的datetime对象
now = datetime.now()
# 将上述对象转化为时区为Asia/Shanghai的datetime对象
pktime = now.astimezone(timezone('Asia/Shanghai'))
# 将时区为上海的datetime对象转化为时区为utc的时间对象
utctime = pktime.astimezone(timezone('UTC')).strftime('%Y-%m-%d %H:%M:%S')
  • UTC时间字符串转化为北京时间的datetime对象
# 构造出没有时区的datetime对象
naive_time = datetime.strptime(utctime_str,'%Y-%m-%d %H')
# 取出上述对象的年月日小时构造一个时区为utc的datetime对象
utctime = datetime(naive_time.year,naive_time.month,naive_time.day,naive_time.hour,tzinfo=timezone('UTC'))
# 把时区为utc的对象转化为时区为Asia/Shanghai的datetime对象
pktime = utctime.astimezone(timezone('Asia/Shanghai'))