Python:time与datetime
学习自:
(10条消息) Python的time和datetime的简单使用_慢行的蜗牛-CSDN博客
Python之 time 与 datetime模块 - 叶灵溪&叶仙樱 - 博客园
python time模块和datetime模块详解 - 苍松 - 博客园
Python中有两个模块:time与datetime,分别是时间与日期。
time
三种时间表示方法
time模块用于时间操作,包括:
- 时间表达;
- 获取系统时间、时间的格式化输出;
- 精确计时;
time模块中有3种时间表示方法:
- timestamp:时间戳;基于1970.1.1 00:00:00的偏移值。浮点数;
- struct_time类型:gmtime()和localtime()可以将timestamp显示为struct_time()类型;
- 格式化时间:strftime()函数可以把struct_time()时间格式化显示。
struct_time
struct_time类型也叫结构化时间,struct_time是一个tuple,其中一共9个元素:(年,月,日,时,分,秒,第几周,第几天,夏令时),这九个元素都是int类型。
格式为:
#访问时可以通过 t[ tm_xxx ]的形式访问每一项
tm_year
tm_mon
tm_mday
tm_hour
tm_min
tm_sec
tm_wday
tm_yday
tm_isdst
我们用一段程序来说明上述三种时间:
import time print(time.time()) #时间戳,float类型
print(time.strftime("%Y-%m-%d %X"))#格式化时间,string类型
print(time.localtime())#本地时区的struct_time
print(time.gmtime())#UTC时区的struct_time
1622900361.6924574
2021-06-05 21:39:21
time.struct_time(tm_year=2021, tm_mon=6, tm_mday=5, tm_hour=21, tm_min=39, tm_sec=21, tm_wday=5, tm_yday=156, tm_isdst=0)
time.struct_time(tm_year=2021, tm_mon=6, tm_mday=5, tm_hour=13, tm_min=39, tm_sec=21, tm_wday=5, tm_yday=156, tm_isdst=0)
格式化时间
格式化方式见下一段的第二部分的两个函数,这里要说明格式化的写法:
%y 两位数的年份表示 (00-99)
%Y 四位数的年份表示 (0000-9999)
%m 月(01-12)
%d 日(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟(00-59)
%S 秒(00-59)
%a 星期几,简写
%A 星期几,完整
%b 月份,简写
%B 月份,完整
%c 本地的日期、时间表示
%j 一年第几天 (001-366)
%p 本地A.M.或P.M.等价符
%U 一年第几周(00-53),星期天为一周开始
%w 星期几,数字(0-6)
%W 一年第几周(00-53),星期一为一周开始
%x 本地日期
%X 本地时间,13:22:44这种形式
%Z 当前时区名称
%% 转义%
三种时间的关系
- timestamp:计算机认识的时间
- struct_time:程序员处理的时间
- 格式化时间:人类能看懂的时间
time模块的三类函数
1、时间获取:time()、ctime()、gmtime()
- time.time():当前时间戳;浮点型
- time.ctime():获取当前时间,并以易读的形式表示;String
- time.gmtime():计算机可处理格式,即上文提到的struct_time类型
2、时间格式化:strftime()、strptime()
- time.strftime( format [ , struct_time ] ):根据参数把一个struct_time或tuple转换为字符串;如果没有第二个参数,则默认返回当前时间
- time.strptime( string [ , format ] ):与strftime相反,把字符串转换为struct_time并返回;这里的format缺省时为 "%a %b %H:%M:%S %Y"——周几 月 时:分:秒 年
3、程序计时:sleep()、perf_counter()
- time.perf_counter():返回一个CPU级别的精准时间计时数,单位为秒;计数值不确定,连续调用取差值才有意义
- time.sleep( s ):休眠s秒
三种时间的转化

import time print(time.time()) #timestamp -> struct_time
#localtime():将一个时间戳转换为本地的struct_time,参数缺省时默认转化当前时间
#gmtime(time_stamp):与localtime类似,不过是UTC时间下的struct_timeprint(time.time())
print(time.localtime())
print(time.localtime(1622906297.021401)) #struct_time -> timestamp
#mktime( struct_time )
print(time.localtime()) #struct_time -> format string
#strftime(format [,t]) 若t未指定,默认用time.localtime()
lt = time.localtime()
print(lt)
str_time = time.strftime("%Y-%m-%d %X")
print(str_time) #format string -> struct_time
#strptime(str_time , format)
#若format缺省,默认是"%a %b %d %H:%M:%S %Y"
st = time.strptime(str_time,"%Y-%m-%d %X")
print(st)

虽然Timestamp和任意格式化时间字符串间不存在转化方式,但是却存在向某一特定格式时间字符串的转化函数,这个特定格式就是“%a %b %d %H %M %S %Y”——“星期几 月 日 时 分 秒 年”,即我们在上文所说的strptime函数的默认格式
import time
#asctime( [struct_time] ):将一个表示时间的tuple或者struct_time表示为指定格式的时间字符串
#如果参数缺省,则默认用time.localtime()
str = time.asctime()#Sat Jun 5 23:48:44 2021 #cstime( [timestamp] ):把一个timestamp转化为指定格式的时间
#缺省时,将使用time.time()作为参数
str = time.ctime(time.time())#Sat Jun 5 23:48:44 2021
DateTime
datetime是Python中常用的时间模块,主要是输出格式化时间和提取属性的功能。
datetime中的类
| datetime.date | 日期,常用属性有:year、month、day |
| datetime.time | 时间,常用属性有:hour、minute、second、microsecond |
| datetime.datetime | 日期时间 |
| datetime.timedelta | 两个date、time、datetime间的时间间隔,单位可达μs |
| datetime.tzinfo | 时区相关信息对象的抽象基类。它由datetime和time类使用,以提供自定义时间调账 |
| datetime.timezone | 实现tzinfo的类,表示与UTC的固定偏移量 |
datetime.datetime
- datetime.datetime.now():返回系统的当前时期
- datetime.datetime.now().date():返回当前日期
- datetime.datetime.now().time():返回当前时间
- datetime.datetime.ctime(datetime/date/time):将date、time、datetime转化为str类型
- datetime.datetime.now().strftime('%Y-%m-%d %H:%M%S'):跟ctime类似,datetime中的各种类型转化为字符串
- datetime.datetime.strptime( str , format ):将str转化为指定格式的datetime类型

格式化方式与time类似,只是多了一个%f表示微秒。
datetime.timedelta
该类用于表示两个不同时间之间的差值。如果使用time模块对时间进行算数运算,只能将格式化str和struct_time先转换为timestamp,然后对该timestamp加减n秒,最后再转换为struct_time或格式化str,这显然很不方便。而datetime.timedelta类可以让我们方便地对date、time、datetime对象做算术运算,而且两个时间之间的差值也更容易控制。
使用方法datetime.timedelta()添加参数,可以计算任意时间前的datetime:
import datetime timeapp = datetime.datetime.now().date()
delta = datetime.timedelta(days=300)#计算300天前的时期 print(type(timeapp))
print(timeapp)
print(timeapp - delta)
<class 'datetime.date'>
2021-06-06
2020-08-10
timedelta()也接受多个参数,比如300d12h前的时间:
timeapp = datetime.datetime.now()
delta = datetime.timedelta(days=300,hours=12)
print(timeapp)
print(timeapp - delta)
2021-06-06 09:53:41.894628
2020-08-09 21:53:41.894628
计算间隔的总天数和秒数:
import datetime dlt=datetime.timedelta(days=1,hours=2)
day_dlt=dlt.days
second_delta=dlt.total_seconds() print(day_dlt)
print(second_delta) 1
93600.0
Python:time与datetime的更多相关文章
- JavaScript 解析 Django Python 生成的 datetime 数据 时区问题解决
JavaScript 解析 Django/Python 生成的 datetime 数据 当Web后台使用Django时,后台生成的时间数据类型就是Python类型的. 项目需要将几个时间存储到数据库中 ...
- python 中date datetime time 与str的互转
以下全部引入 form datetime import datetime, timedelta import time 一.time 转str 二.datetime 转 str str_date = ...
- Python处理时间 time && datetime 模块
Python处理时间 time && datetime 模块 个人整理,获取时间方式: import datetime import time #获取当前时间:Thu Nov 03 ...
- python之模块datetime详解
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块datetime详解 import datetime #data=datetime.dat ...
- python之模块datetime 常见操作
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块datetime #http://blog.sina.com.cn/s/blog_6c37 ...
- Python时间模块datetime用法
时间模块datetime是python内置模块,datetime是Python处理日期和时间的标准库. 1,导入时间模块 from datetime import datetime 2,实例 from ...
- python模块time&datetime&json & picle&14.logging等
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...
- python time、datetime、random、os、sys模块
一.模块1.定义模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test)包:用来从逻辑上组织 ...
- Python模块 - time,datetime,calendar
time模块 localtime 当前时间的struct_time形式 >>> time.localtime() time.struct_time(tm_year=2015, tm_ ...
- python基础 ---time,datetime,collections)--时间模块&collections 模块
python中的time和datetime模块是时间方面的模块 time模块中时间表现的格式主要有三种: 1.timestamp:时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算 ...
随机推荐
- 挂载的卸载与运行 关闭selinux
目录 一:系统目录结构介绍 1 定义挂载设备信息 光驱设备 /cd/cdrom 2 完成设备挂载操作 运行挂载 mount/dev/cdrom /mnt/ 3 检查测试挂载结果 挂载检查 df -h ...
- elasticsearch算法之推荐系统的相似度算法(一)
一.推荐系统简介 推荐系统主要基于对用户历史的行为数据分析处理,寻找得到用户可能感兴趣的内容,从而实现主动向用户推荐其可能感兴趣的内容: 从物品的长尾理论来看,推荐系统通过发掘用户的行为,找到用户的个 ...
- React之常用技术栈
· react-redux:https://www.cnblogs.com/jingxuan-li/p/12439181.html · react-router-dom:https://www.c ...
- System.arraycopy()的用法?
1.使用方法 public void arr(Object arr1, int x, Object arr2, int y, int length) arr1 : 源数组; x: 需要从源数组要复制的 ...
- FFT通过傅里叶级数图解频域补零时域内插
在时域频域的信号分析的过程中,一个常见的说法叫:频域数据补零会让时域数据内插. 意思是在频域数据中多补几个零,再做ifft(逆傅里叶变换)后的时域数据,会变得更加"细腻",分辨率会 ...
- Python PyQt5 | Hi音乐 v3.0.0 正式版发布
Hi音乐 两大平台全音乐搜索.收听与下载的简洁网络音乐播放器 中文介绍 | English Description 源码:Gitee 码云 简介 Hi音乐 是基于 Python 开发的简洁网络音乐播放 ...
- Redis源码简要分析
转载请注明来源:https://www.cnblogs.com/hookjc/ 把所有服务端文件列出来,并且标示出其作用:adlist.c //双向链表ae.c //事件驱动ae_epoll.c // ...
- Ajax不允许缓存方法
AJAX请求后台时会自动缓存,客户端发起请求首先请求缓存,第一次请求即由缓存再请求服务器,返回数据时同样先返回到缓存再展示再客户端.但是如果数据要求随时性呢,数据变化频率高呢?那么如何不让ajax设置 ...
- ldconfig及LD_LIBRARY_PATH
ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令:ldconfig.ldconfig 命令的用途,主要是在默认搜寻目录 (/lib和/usr/lib ...
- 一次Kafka内存泄露排查经过
一.现象 服务部署后内存总体呈上升趋势 二.排查过程 通过go tool pprof收集了三天内存数据 2月11号数据: 2月14号数据: 2月15号数据: 可以看到newPartitionProdu ...