python 时间相互转换

news/2024/10/18 18:23:34/

文章目录

  • 写在前面
  • datetime转timestamp
  • datetime转时间字符串
  • timestamp转datetime
  • timestamp转时间字符串
  • 时间字符串转datetime
  • 时间字符串转timestamp
  • 参考文献

写在前面

对于这三者的转换,python2和python3是不同的,因为在python3中新增一些实例方法,能够很方便的实现这些类型之间的转换。

如果需要python2的类型转换请移步这些文章:
python——时间与时间戳之间的转换
Python字符串、时间戳、datetime时间相关转换

简单介绍下,datetime和time中常用的方法

  • datetime.datetime.strptime(string, format)。类方法,作用是根据指定的format(格式),将字符串转换成datetime.datetime实例对象。
  • datetime.datetime.strftime(format): 实例方法,作用就是根据指定的format(格式),将datetime.datetime实例对象转换成时间字符串。
  • datetime.datetime.timestamp(): 实例方法,作用就是将datetime.datetime实例对象转换成时间戳。
  • datetime.fromtimestamp(timestamp, tz=None):类方法,作用是将时间戳转换成datetime.datetime对象。
  • time.strptime(string, format)。类方法,作用是根据指定的format(格式)将时间字符串转换成time.struct_time对象。
  • time.strftime(format, string)。类方法,作用是根据指定的format(格式,)将time.struct_time对象转换成时间字符串。
  • time.localtime(timestamp)。类方法,作用是将时间戳转换成本地时间的time.struct_time对象。若要转换成UTC的time.struct_time对象则使用time.gtime()。
  • time.mktime(t)。类方法,time.localtime()的逆函数,因为作用正好相反。其作用是将time.struct_time对象转换成时间戳。

datetime转timestamp

直接使用datetime模块中datetime类的timestamp()实例方法。

import datetime
import timedt = datetime.datetime.now()
ts = dt.timestamp()
print(dt) # datetime.datetime(2019, 9, 11, 11, 20, 6, 681320)
print(ts) # 1568172006.68132
1234567

datetime转时间字符串

直接使用datetime模块中的datetime类的strftime()实例方法即可。

import datetime
import timedt = datetime.datetime.now()
format = '%Y-%m-%d %H:%M:%S' # 根据此格式来解析datetime.datetime()对象为时间字符串print(dt) # datetime.datetime(2019, 9, 11, 11, 20, 6, 681320)
print(dt.strftime(format)) # '2019-09-11 11:20:06'123456789

timestamp转datetime

import datetime
import timets = 1568172006.68132 # 时间戳
dt = datetime.datetime.fromtimestamp(ts)print(dt) # datetime.datetime(2019, 9, 11, 11, 20, 6, 681320)
1234567

timestamp转时间字符串

  1. 转换必须通过time.struct_time对象作为桥梁。
  2. 先转成datetime.datetime对象,再转成时间字符串。

time.struct_time对象

时间字符串

时间戳


import datetime
import time
# 方法1
ts = 1568172006.68132 # 时间戳
format = '%Y-%m-%d %H:%M:%S' # 根据此格式来时间戳解析为时间字符串
# 时间戳转time.struct_time
ts_struct = time.localtime(ts)
# time.struct_time转时间字符串
date_string = time.strftime(format, ts_struct)print(date_string) # '2019-09-11 11:20:06'# 方法2
dt = datetime.datetime.fromtimestamp(ts)
date_string = dt.strftime(format)
123456789101112131415

时间字符串转datetime

只需要使用datetime模块中的datetime类的strptime(date_string, format)类方法即可。
这个方法的作用就是:根据指定的format格式将时间字符串date_string,转换成datetime.datetime()对象。

import datetime
import timedate_string = '2019-09-11 11:20:06'
format = '%Y-%m-%d %H:%M:%S' # 根据此格式来解析时间字符串为datetime.datetime()对象dt = datetime.strptime(date_string, format)print(dt) # datetime.datetime(2019, 9, 11, 11, 20, 6)
123456789

时间字符串转timestamp

  1. 转换必须通过time.struct_time对象作为桥梁。
  2. 先转成datetime.datetime对象,再转成timestamp。

时间字符串

time.struct_time对象

时间戳


import datetime
import time# 方法1
date_string = '2019-09-11 11:20:06'
format = '%Y-%m-%d %H:%M:%S' # 根据此格式来解析时间字符串为time()对象# 时间字符串转time.struct_time
ts_struct = time.strptime(date_string, format)
# time.struct_time转时间戳
ts = time.mktime(ts_struct)print(ts) # 1568172006.0# 方法2
dt = datetime.datetime.strptime(date_string, format)
ts = dt.timestamp()
1234567891011121314151617

参考文献

[1] python3官方文档
[2] python——时间与时间戳之间的转换
[3] Python字符串、时间戳、datetime时间相关转换
[4] Python 之 时间字符串、时间戳、时间差、任意时间字符串转换时间对象


http://www.ppmy.cn/news/58338.html

相关文章

华为2023暑期笔试(1-2)

题目: 主办方设计了一个获取食物的游戏,游戏的地图由N个方格组成,每个方格上至多2个传送门,通过传送门可将参与者传送至指定的其它方格。同时,每个方格上标注了三个数字: 第一个数字id:代表方格的编号&…

【Unity-UGUI控件全面解析】| Image 图片组件详解

🎬【Unity-UGUI控件全面解析】| Image 图片组件详解一、组件介绍二、组件属性面板2.1 Image Type三、代码操作组件四、组件常用方法示例4.1 简易血条制作4.2 简易技能冷却条制作五、组件相关扩展使用5.1 Mask 遮罩💯总结🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本…

C++标准库 --- 动态内存 (Primer C++ 第五版 · 阅读笔记)

C标准库 --动态内存 (Primer C 第五版 阅读笔记) 第12章 动态内存------(持续更新)12.1、动态内存与智能指针12.1.1、shared_ptr类12.1.2、直接管理内存12.1.3、shared_ptr和new结合使用12.1.4、智能指针和异常12.1.5、unique_ptr12.1.6、weak_ptr 12.2、动态数组1…

Elasticsearch 优化分析

Elasticsearch 优化分析 Elasticsearch 是一个分布式RESTful 风格的搜索和数据分析引擎广泛用于搜索引擎 日志分析 安全监测等领域在大数据量和高并发的场景下Elasticsearch 的性能和稳定性非常重要因此需要进行优化设计和分析 Elasticsearch 优化的重要性和目标 Elasticsea…

AI模型推理(1)——入门篇

前言 本文主要介绍AI模型推理的相关基础概念,为后续云原生模型推理服务的学习做准备。 初识模型部署 对于深度学习模型来说,模型部署指让训练好的模型在特定环境中运行的过程。相比于常规的软件部署,模型部署会面临更多的难题: …

SpringCloud微服务的熔断、限流、降级是怎么回事?

概述: 在开发公司商城项目时,由于采用的是微服务架构,每个模块之间使用OpenFeign组件进行通信,在遇到高并发时,为了保证系统的可用性和 可靠性,我们使用了阿里的Alibaba的Sentinel组件进行降级、限流和熔断…

Ubuntu连接Xshell

Ubuntu连接Xshell 1、安装ssh,开启服务 1、安装ssh sudo apt-get install openssl-server 2、启动ssh服务 /etc/init.d/ssh start 3、修改文件,允许远程登陆 sudo vi /etc/ssh/sshd_config PermitRootLogin prohibit-password #默认为禁止登录 PermitR…

QT C++开发之:重定义基础数据类型

(1)前言 对于C/C,几乎每个系统都会重定义(typedef)基础数据类型。 (QT在qglobal.h中,MSVS在minwindef.h)。 其目的是为了方便代码的迁移(在各种环境之间)。 …