python日期与时间戳的各种转换示例

作者:小谷xg 时间:2021-05-23 07:47:33 

官方文档的示例中没有我们习惯的日期格式,查了很多博客转换日期和时间戳也都是大概的能得到结果的方式,常将 datetime 和 time 两个模块混用,个人觉得时间格式化不应该这么麻烦,还得用两个模块来支持?故而翻遍了源码,总结以下常用的几种日期和时间戳的转换方式。

以下主要有三个元素(时间字符串,格式,Unix时间戳),可将时间字符串转为另一种时间格式,或将时间字符串转为时间戳,或将时间戳转为时间字符串。

datetime 和 time 两个模块,任意一个都能转换完成。

以下两个模块均列出示例:


# coding: utf-8
from datetime import datetime
import time

s = '2019-06-07 16:30:10'
f = '%Y-%m-%d %H:%M:%S'
s2 = 'Fri Jun 7 16:30:10 2019'
f2 = '%c'

// 时间字符串转时间戳, 时间字串 s和format 对应
// int(t) 转为整型
t = datetime.strptime(s, f).timestamp() # 1559856210.0
t2 = time.mktime(time.strptime(s, f)) # 1559856210.0
t3 = time.mktime(time.strptime(s2, f2)) # 1559856210.0
t4 = datetime.strptime(s2, f2).timestamp() # 1559856210.0
t5 = datetime.strptime('2019-06-07', '%Y-%m-%d').timestamp() # 1559836800.0
t6 = datetime.strptime('06/07/19', '%x').timestamp() # 1559836800.0 (06/07/2019, '%m/%d/%Y')
print(t, t2, t3, t4, t5, t6, "\n")

ut = 1559896210
# 时间戳转为时间字符串
d = datetime.fromtimestamp(ut) # 2019-06-07 16:30:10
d2 = time.strftime(f, time.localtime(ut)) # 2019-06-07 16:30:10
d3 = time.ctime(ut) # Fri Jun 7 16:30:10 2019
d4 = datetime.fromtimestamp(ut).ctime() # Fri Jun 7 16:30:10 2019
d5 = time.strftime('%Y-%m-%d', time.localtime(ut)) # 2019-06-07 (05:23:30, %H:%M:%S)
d6 = datetime.fromtimestamp(ut).date() # 2019-06-07
d7 = datetime.fromtimestamp(ut).time() # 16:30:10
d8 = time.strftime('%x', time.localtime(ut)) # 06/07/19
d9 = time.strftime('%X', time.localtime(ut)) # 16:30:10
dd = datetime.fromtimestamp(ut).strftime('%x') # 06/07/19 [(16:30:10, %X), (Fri Jun 7 16:30:10 2019, %c)]
print(d, d2, d3, d4, d5, d6, d7, d8, d9, dd, "\n")

# 格式转换
# 将 2019-06-07 16:30:10 转为 Fri Jun 7 16:30:10 2019
# (16:30:10, %X)
transf = datetime.strptime(s, f).strftime(f2)
# 将 Fri Jun 7 16:30:10 2019 转为 2019-06-07
# (2019-06-07 16:30:10, %Y-%m-%d %H:%M:%S)
transf2 = datetime.strptime(s2, f2).strftime('%Y-%m-%d')
# 将 2019-06-07 16:30:10 转为 Fri Jun 7 16:30:10 2019
# (2019-06-07 16:30:10, %Y-%m-%d %H:%M:%S)
transf3 = time.strftime('%c', time.strptime(s, f))
# 将 Fri Jun 7 16:30:10 2019 转为 2019-06-07 16:30:10
transf4 = time.strftime(f, time.strptime(s2, f2))
print(transf, transf2, transf3, transf4)

来源:https://segmentfault.com/a/1190000021731558

标签:python,日期,时间戳,转换
0
投稿

猜你喜欢

  • MySQL借助DB实现分布式锁思路详解

    2024-01-16 03:17:13
  • python 通过 socket 发送文件的实例代码

    2022-10-07 17:32:48
  • Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法

    2022-06-24 09:32:21
  • IE浏览器兼容Firefox的JS脚本的代码

    2024-04-10 13:58:15
  • 前端框架之封装Vue第三方组件三个技巧

    2023-07-02 16:37:03
  • Python 数据类型中的字符串和数字

    2023-04-30 07:51:58
  • Mysql中使用时间查询的详细图文教程

    2024-01-17 16:35:54
  • 7个流行的Python强化学习算法及代码实现详解

    2021-07-06 08:38:03
  • Golang中异常处理机制详解

    2024-02-17 17:05:50
  • Python实现查询剪贴板自动匹配信息的思路详解

    2022-09-16 06:35:41
  • Python 文本文件与csv文件的读取与写入

    2021-02-10 09:57:56
  • 可输入的select代码

    2009-12-26 18:25:00
  • python 并发下载器实现方法示例

    2022-03-31 10:46:00
  • python获取网页状态码示例

    2023-11-23 00:57:10
  • python机器学习理论与实战(六)支持向量机

    2023-10-18 22:59:53
  • XML入门教程:XML CDATA的作用

    2007-11-07 14:08:00
  • gem install mysql报错checking for mysql_qu

    2010-11-11 12:13:00
  • Python使用shutil操作文件、subprocess运行子程序

    2021-03-01 00:19:19
  • python+matplotlib实现动态绘制图片实例代码(交互式绘图)

    2022-06-16 15:43:08
  • MySQL之批量插入的4种方案总结

    2024-01-19 16:13:11
  • asp之家 网络编程 m.aspxhome.com