Python 日期和时间戳的转换

1. Python中处理时间的模块

Python中处理时间的模块有timedatetimecalendar

在Python中表示时间的方式:

  • 时间戳:10位整数位和若干小数位,例如 1551153156.6358607
  • 元组(struct_time):  含有9个元素的元组,例如 (tm_year=2011, tm_mon=9, tm_mday=28, tm_hour=10, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=271, tm_isdst=-1)
  • 格式化字符串: 格式化的时间字符串, 例如 '2019-02-26 12:45:46'

time模块,以元组(struct_time)为核心实现时间戳和格式化时间字符串的相互转换。

datetime模块,以datetime类实例对象为核心实现时间戳和格式化时间字符串的相互转换。

2. Python的time模块

time模块是通过调用C库实现的,所以在有些平台上无法使用。大部分接口和C标准库的time.h一致。

使用time模块来进行格式化时间字符串和时间戳的相互转换。

2.1 将时间戳转换为格式化字符串

使用time模块获取当前时间的时间戳:   

>>> import time
>>> time.time()
1551157481.034565

时间戳转换为元组(struct_time):

>>> time.localtime(time.time())
time.struct_time(tm_year=2019, tm_mon=2, tm_mday=26, tm_hour=13, tm_min=2, tm_sec=1, tm_wday=1, tm_yday=57, tm_isdst=0)

元组(struct_time)转换为格式化时间字符串

>>> time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
'2019-02-26 13:04:41'

2.2 将格式化字符串转换为时间戳

将格式化时间字符串'2019-02-26 13:04:41'转换为时间戳。

格式化时间字符串转换为元组(struct_time):

>>> str_time = '2019-02-26 13:04:41'
>>> time.strptime(str_time, '%Y-%m-%d %H:%M:%S')
time.struct_time(tm_year=2019, tm_mon=2, tm_mday=26, tm_hour=13, tm_min=4, tm_sec=41, tm_wday=1, tm_yday=57, tm_isdst=-1)

元组(struct_time)转换为时间戳

>>> time.mktime(time.strptime(str_time, '%Y-%m-%d %H:%M:%S'))
1551157481.0

2.3 使用time模块获取当前日期和时间

使用time模块获取当前日期(使用当前时间的struct_time作为缺省参数)

>>> time.strftime('%Y-%m-%d')
'2019-02-26'

使用time模块获取当前时间(使用当前时间的struct_time作为缺省参数)

>>> time.strftime('%H:%M:%S')
'13:21:13'

3. Python 的datetime模块

和time模块相比,datetime模块提供更直接易用的接口,功能也更加强大。

datetime模块提供了处理日期和时间的类,既有简单的方式,也有复杂的方式。它虽然支持日期和时间算法,但其实现是重点是输出的格式化操作和更加有效的属性提取功能。

3.1 datetime模块中定义的类

datetime模块中定义的类(这些类的对象都是不可变的):

  • datetime.date: 表示日期,常用的属性有year、month和day
  • datetime.time: 表示时间,常用的属性有hour、minute、second和microsecond
  • datetime.datetime: 表示日期时间
  • datetime.timedelta: 表示两个date、time和datetime实例之间的时间间隔,最小单位可达微秒
  • datetime.tzinfo: 时区相关对象的抽象基类,由time和datetime类使用
  • datetime.timezone: Python3.2中新增的功能,实现tzinfo抽象基类的类,表示与UTC的固定偏移量

3.2 使用datetime模块中的datetime类将时间戳转换为格式化时间字符串

使用datetime类将时间戳转换为datetime实例

>>> import time
>>> from datetime import datetime
>>> dt = datetime.fromtimestamp(time.time())
>>> dt
datetime.datetime(2019, 2, 26, 15, 27, 28, 678923)

datetime实例转换为格式化字符串

>>> dt.strftime('%Y-%m-%d %H:%M:%S')
'2019-02-26 15:27:28'

3.3 使用datetime模块中的datetime类将格式化时间字符串转换为时间戳

使用datetime类将格式化字符串'2019-02-26 15:27:28'转换为datetime实例

>>> st = '2019-02-26 15:27:28'
>>> dt = datetime.strptime(st, '%Y-%m-%d %H:%M:%S')
>>> dt
datetime.datetime(2019, 2, 26, 15, 27, 28)

datetime实例转转为元组(struct_time)

>>> tp = dt.timetuple()
>>> tp
time.struct_time(tm_year=2019, tm_mon=2, tm_mday=26, tm_hour=15, tm_min=27, tm_sec=28, tm_wday=1, tm_yday=57, tm_isdst=-1)

元组(struct_time)转换为时间戳

>>> time.mktime(tp)
1551166048.0

也可以直接使用datetime实例的timestamp()函数直接获取时间戳:

>>> dt.timestamp()
1551166048.0

3.4 使用datetime类获取当前日期和时间

使用datetime类获取当前日期

>>> datetime.now().date().strftime('%Y-%m-%d')
'2019-02-26'

使用datetime类获取当前时间

>>> datetime.now().time().strftime('%H:%M:%S')
'15:48:43'

4. 参考资料

  • Python time模块详解
  • Python datetime模块详解
  • Python time模块和datetime模块详解

转载于:https://www.cnblogs.com/strivepy/p/10436213.html

Python 日期和时间戳的转换相关推荐

  1. python时间戳转换日期格式_Python 日期和时间戳的转换

    Python 日期和时间戳的转换 1. Python中处理时间的模块 Python中处理时间的模块有time.datetime和calendar. 在Python中表示时间的方式: 时间戳:10位整数 ...

  2. [转载] python 中的时间,日期,时间戳互相转换

    参考链接: 日期时间的Python时间戳,反之亦然 时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的. 完整的. 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间. ...

  3. js中日期与时间戳的转换

    1.日期转时间戳 const date = new Date('要转换的时间字符串');const time= date.getTime(); 2.时间戳转日期 function exchange(d ...

  4. MySQL 日期和时间戳的转换

    数据库中时间戳概念: 把时间t转换成从 1970-01-01 00:00 开始到时间t所经过的秒数.这个数值就是时间t对应的时间戳. 由于是数值方便比较和运算 1.日期转时间戳 -- 转十位 sele ...

  5. python3 时间、日期、时间戳的转换

    1.简介 在编写代码时,往往涉及时间.日期.时间戳的相互转换. 2.示例 # 引入模块 import time, datetime 2.1 str类型的日期转换为时间戳 # 字符类型的时间 tss1 ...

  6. MySQL日期和时间戳的转换

    1 日期转时间戳 select UNIX_TIMESTAMP('2018-12-25 12:25:00') 结果:1545711900 2 时间戳转日期 select FROM_UNIXTIME(15 ...

  7. python时间戳转换成时间_Python时间,日期,时间戳之间转换,时间转换时间戳,Python时间戳转换时间,Python时间转换时间戳...

    #1.将字符串的时间转换为时间戳方法: a = "2013-10-10 23:40:00" #将其转换为时间数组 import time timeArray = time.strp ...

  8. python中的time的时间戳_python中time、date、时间戳的转换

    python中时间.日期.时间戳的转换 import time, datetime str类型的日期转换为时间戳 # 字符类型的时间 tss1 = '2013-10-10 23:40:00' # 转为 ...

  9. python 日期字符串转换时间戳

    pandas dataframe时间转换时间戳 a = [["a", "2022-11-10 9:30"],["b", "2021 ...

最新文章

  1. 用python创建一个目录
  2. kendo #数据结构 #重心分解
  3. LeetCode 145. Binary Tree Postorder Traversal
  4. 练习1: Python基本语法元素 (第1周)
  5. RocketMq Producer最佳实践
  6. loadrunner学习理论之一
  7. Ubuntu 16.04 开机自动锁定数字键盘
  8. C#设计模式之1-工厂方法模式
  9. mysql 存储过程调用 mybatis/hibernate
  10. windows nginx 停止和启动_Nginx安装过程详解
  11. 计算机打印服务总是自动关闭,XP系统Print spooler总是自动关闭的解决方法
  12. html中斜体样式怎么写,html i 斜体标签
  13. 建筑热过程太阳辐射负荷计算
  14. Android Rotating Image Wallpaper 自动切换壁纸
  15. golang的hijack篡取劫持
  16. [NCTF2019]SQLi 1regexp注入
  17. MySQL --- 多表查询 - 七种JOINS实现、集合运算、多表查询练习
  18. 华为路由器限速:MQC限速和QOS
  19. 05-旭日X3派测评——Open Cv Pangolin等库安装ORB_SLAM2 安装运行
  20. mac 查ip linux,如何通过mac地址查ip,小编教你Mac怎么查看ip地址

热门文章

  1. Atitit.异步的实现模式attilax大总结
  2. html知识收集(一)
  3. SQL 连接字符串的说明(转)
  4. 北京修复宕机故障之旅
  5. Apache+Tomcat集群负载均衡的两种session处理方式
  6. ZooKeeper編程01--RMI服務的多服務器管理
  7. Python函数积累
  8. 搭建MSSM框架(Maven+Spring+Spring MVC+MyBatis)
  9. mybatis if-else(写法)
  10. Runtime的应用