python 日期与时间戳相互转换
·
python datetime获取当前日期、返回指定格式、日期的加减的计算、且格式化输出、日期与星期的转化、北京时间与utc时间互相转化、复杂的高级运算 relativedelta
一、time 模块的转化
time.time 1970到现在的时间
time.localtime() 本地当前时间
-
日期转时间戳
方式一 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时间的相互转化
-
北京时间字符串转化为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'))
更多推荐
已为社区贡献7条内容
所有评论(0)