Python中的字符串转时间戳

Python中的字符串转时间戳-笔记

一、说明

python中时间日期格式化符号:

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00-59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为 0,星期一为 1,以此类推。
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

二、代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time     : 2020/5/13 19:23
# @Author   : 苑先森
# @File     : 时间格式转换.py
# @Software : PyCharm

from datetime import datetime
import datetime as dt

t_str1 = "May 6, 2020 10:47"
t_obj1 = datetime.strptime(t_str1, "%b %d, %Y %H:%M")
print(type(t_obj1))  # 查看类型<class 'datetime.datetime'>
print(f"t_obj1:{t_obj1}")  # ==> t_obj:2020-05-06 10:47:00

t_str2 = "May 6, 2020 10:47am GMT+0800"
t_obj2 = datetime.strptime(t_str2, "%b %d, %Y %H:%M%p %Z+0800")  # %p同等与am或pm,%Z:当前时区的名字
print(f"t_obj2:{t_obj2}")  # t_obj2:2020-05-06 10:47:00  看似正常

t_str3 = "May 6, 2020 10:47pm GMT+0800"
t_obj3 = datetime.strptime(t_str3, "%b %d, %Y %H:%M%p %Z+0800")  # %p同等与am或pm,%Z:当前时区的名字
print(f"t_obj3:{t_obj3}")  # t_obj3:2020-05-06 10:47:00 难道不是22:47:00

# 注意%H是24小时制,%I才是12小时制
t_str4 = "May 6, 2020 10:47pm GMT+0800"
t_obj4 = datetime.strptime(t_str4, "%b %d, %Y %I:%M%p %Z+0800")  # %p同等与am或pm,%Z:当前时区的名字
print(f"t_obj4:{t_obj4}")  # t_obj4:2020-05-06 22:47:00  正常,秒数如果没有,默认为0,年份默认1970

# 如果想转换时区,最直接的直接减
t_obj5 = t_obj4 - dt.timedelta(hours=8)
print(f"t_obj5:{t_obj5}")  # t_obj5:2020-05-06 14:47:00

# 判断两个时间的先后顺序
t_new = t_obj4
t_old = t_obj5
print((t_new - t_old))  # 8:00:00,相差8个小时
print((t_old - t_new))  # -1 day, 16:00:00,相差16个小时
# 利用days
print((t_new - t_old).days)  # 0, 判断结果 >= 0,说明前面的时间(t_new)要比后面的时间(t_old)更长
print((t_old - t_new).days)  # -1, 一旦结果 < 0,说明前面的时间(t_old)要比后面的时间(t_new)更短
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值