Python中三种时间格式转换的方法

作者:Python热爱者 时间:2023-10-18 13:11:43 

一 时间元组

1. 时间元组和时间戳的互化

import time,datetime
# 获取当前时间的时间元组
t = time.localtime()
print(t)
# 时间元组转时间戳
timestamp = time.mktime(t)
print(timestamp)
# time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=23, tm_min=15, tm_sec=41, tm_wday=2, tm_yday=296, tm_isdst=0)
# 1571843741.0
# 获取时间戳
ts = time.time()
# 时间戳转时间元组
# 方法一
print('法一:',time.localtime(ts))
# 方法二
print('法二:',time.gmtime(ts))
# 两种方法的区别只有小时的输出不同,法一的小时是24小时制的,法二是12小时的
# time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=23, tm_min=10, tm_sec=14, tm_wday=2, tm_yday=296, tm_isdst=0)
# time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=15, tm_min=10, tm_sec=14, tm_wday=2, tm_yday=296, tm_isdst=0)

2. 时间元组和字符串的互化

import time
# 字符串转时间元组
# 字符类型的时间
t1 = '2013-10-10 23:40:00'
# 转为时间元组,时间元组本身没有直接的用处,但它可以输出时间的年月日时分秒等
# 注意这里的字符串除了%Y %m %d %H %M %S分别代表字符串中的年月日时分秒,
# 这里的格式必须和字符串一模一样,由于字符串中间有空格,它也不能少
timeArray = time.strptime(t1, "%Y-%m-%d %H:%M:%S")
print('并没有直接的用处:', timeArray)
print('输出年:', timeArray.tm_year)
print('输出月:', timeArray.tm_mon)
print('输出日:', timeArray.tm_mday)
print('输出时:', timeArray.tm_hour)
print('输出分:', timeArray.tm_min)
print('输出秒:', timeArray.tm_sec)
# 当用%Y时表示的是年份的全称,当用%y时表示简称,
# 月份和小时没有这种用法,它们只用小写,时分秒的貌似只用大写
t2 = '19/09/05 22/16'
timeArray = time.strptime(t2, "%y/%m/%d %H/%M")
print(timeArray)
# 并没有直接的用处: time.struct_time(tm_year=2013, tm_mon=10, tm_mday=10, tm_hour=23, tm_min=40, tm_sec=0, tm_wday=3, tm_yday=283, tm_isdst=-1)
# 输出年: 2013
# 输出月: 10
# 输出日: 10
# 输出时: 23
# 输出分: 40
# 输出秒: 0
# time.struct_time(tm_year=2019, tm_mon=9, tm_mday=5, tm_hour=22, tm_min=16, tm_sec=0, tm_wday=3, tm_yday=248, tm_isdst=-1)
# 时间元组转字符串
ts = time.strftime("%Y/%m/%d %H:%M:%S", timeArray)
print(ts)
# 2019/09/05 22:16:00

二 字符串与时间戳

字符串与时间戳不能直接转化,要通过时间元组来完成,时间元组是中介.

转化图:

Python中三种时间格式转换的方法

三 时间的加减用法

时间元组不能加减,要用datetime格式的时间才能加减.下面是字符串转为datetime后,进行时间加减运算.

import datetime
start = '2019-07-28 00:00:08'
end = '2019-07-29 00:50:03'
# 先将字符串转化为时间格式
a = datetime.datetime.strptime(start, "%Y-%m-%d %H:%M:%S")
b = datetime.datetime.strptime(end, "%Y-%m-%d %H:%M:%S")
print(a,b)
# 只能直接计算秒和天,其它的不能
# seconds获得的秒只是时间差中的小时、分钟和秒部分的和,并没有包含时间差的天数
print((b-a).seconds)
# total_seconds来获取准确的时间差,并将时间差转换为秒
print((b-a).total_seconds())
# 如果不够一天,会输出0
print((b-a).days)
# 时间相加
c = a + datetime.timedelta(hours=5,seconds=68)
d = a - datetime.timedelta(days=69,minutes=89)
print(c,d)
# 2019-07-28 00:00:08 2019-07-29 00:50:03
# 2995
# 89395.0
# 1
# 2019-07-28 05:01:16 2019-05-19 22:31:08

来源:https://blog.csdn.net/qdPython/article/details/127937547

标签:Python,时间,转换
0
投稿

猜你喜欢

  • 使用Javascript简单计算器

    2024-04-29 13:37:15
  • python 异步async库的使用说明

    2022-03-03 20:37:01
  • ACCESS入门教程:用向导建立数据库

    2008-01-17 12:46:00
  • Python pyautogui模块实现鼠标键盘自动化方法详解

    2023-07-25 09:16:42
  • DHTML中重要的属性方法

    2008-06-21 17:13:00
  • Python趣味挑战之实现简易版音乐播放器

    2021-06-25 15:13:43
  • MySQL CHAR和VARCHAR存储、读取时的差别

    2024-01-22 20:54:58
  • 妄想or未来?界面的虚拟现实化

    2010-03-01 12:53:00
  • python登录WeChat 实现自动回复实例详解

    2021-05-25 03:22:22
  • Python实现的随机森林算法与简单总结

    2021-07-10 20:59:54
  • Python Ruby 等语言弃用自增运算符原因剖析

    2022-10-11 07:42:31
  • Python线性回归实战分析

    2023-05-19 04:35:42
  • Python爬虫获取豆瓣电影并写入excel

    2022-04-24 06:41:12
  • FrontPage XP设计制作网页小技巧八则

    2008-06-04 12:43:00
  • Python程序设计入门(3)数组的使用

    2023-07-20 07:11:15
  • python必学知识之文件操作(建议收藏)

    2021-10-01 16:28:25
  • python 如何获取文件夹中的全部文件

    2022-09-10 16:48:11
  • python 并发编程 非阻塞IO模型原理解析

    2022-03-11 06:55:54
  • focus 进 textarea 元素后光标位置的修复

    2008-09-27 13:27:00
  • JS实现常用导航鼠标下经过下方横线自动跟随效果

    2024-04-17 10:11:55
  • asp之家 网络编程 m.aspxhome.com