Python中三种时间格式转换的方法
作者:Python热爱者 发布时间:2023-10-18 13:11:43
标签:Python,时间,转换
一 时间元组
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
二 字符串与时间戳
字符串与时间戳不能直接转化,要通过时间元组来完成,时间元组是中介.
转化图:
三 时间的加减用法
时间元组不能加减,要用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


猜你喜欢
- 一、什么是数字识别? 所谓的数字识别,就是使用算法自动识别出图片中的数字。具体的效果如下图所示:上图展示了算法的处理效果,算法能够自动的识
- 多支付原理1.利用鸭子类型。规定前台传过来支付方式。pay_methon2.再支付方式里面实现pay(名字统一)方法3.回调函数,在支付方式
- 求3721,163,1,4832,1980,2008,68686688,9999,17173,5173,8848中最大的数明白后,试着求一下
- 最近服务器时不时出现Nginx 502 Bad Gateway,如果在电脑旁边还好,要是半夜或者出去了,怎么办?没关系,写个脚本检测服务状态
- 用程序来求积分的方法有很多,这篇文章主要是有关牛顿-科特斯公式。学过插值算法的同学最容易想到的就是用插值函数代替被积分函数来求积分,但实际上
- 当我们准备建立一个Web站点时,就必须向域名登记机构申请一个Internet域名,因此,我们通常希望了解自己准备使用的域名是否已经被注册,这
- 本文实例讲述了Python实现的用户登录系统功能。分享给大家供大家参考,具体如下:有N,E,Q三个选择,若选择Q或者中断,则系统退出。若其他
- 用javascript实现Base64编码—解决中文问题因javascript求出来的是Unicode要转换成Ansi后才能对它进行Base
- 可用下面提供的强制登录的程序,它也可以用来做会员注册的。security.asp<%bLoggedIn =&nb
- oracle10g数据备份 1.用sql/plus developer,选中要备份的数据表,右击选择"Export data&qu
- csv(Comma-Separated Values)文件是什么?它是一种文件格式,一般也被叫做逗号分隔值文件,可以使用 Excel 软件或
- 根据导师作业安排,在学习数字图像处理(刚萨雷斯版)第六章 彩色图像处理 中的彩色模型后,导师安排了一个比较有趣的作业:融合原理为:1 注意:
- 场景应用老大我让爬取内部网站获取数据,插入到新建的表中,并每天进行爬取更新数据(后面做了定时任务)。然后根据该表统计每日的新增数量/更新数量
- 1) chocolatappChocolat是最新出现的一款强大的Mac系统文本编辑器,兼具原生的Cocoa及强大的文本编辑功能。Choco
- 之所以写这个,其实就是希望能对距离有一些概念,当然这个也是很基础的,不过千里之行始于足下嘛,各种路径算法,比如a*什么的都会用到这个距离测量
- 概述我一直在找一种好的方法来解释 go 语言的并发模型:不要通过共享内存来通信,相反,应该通过通信来共享内存但是没有发现一个好的解释来满足我
- 题目描述利用opencv或其他工具编写程序实现缺陷检测。实现过程# -*- coding: utf-8 -*-'''
- Linux下MySQL整个数据库的备份与还原[root]# /usr/bin/mysqldump -h127.0.0.1 -uusernam
- 前言最近组长安排着做一个项目,h5的应用下载项目,想着做起来还是比较容易,可是看到提出的需求,我就有点懵逼了!需要对应用的下载进行统计!!!
- 前言关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题