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'))
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风华浪浪

讨个老婆本呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值