python中time、datetime模块的使用


Posted in Python onDecember 14, 2020

1、前言

如果您从事过python web的开发,那一定有过这样的经历,对于各种复杂繁琐的业务逻辑,掺杂着各种各样的时间约束,让人很容易搞的头晕眼花,比如展示出一天内用户进行过的所有操作记录,再比如进行验证码验证时获取当前时间与验证码生成时间进行比较,检查是否超过10分钟过期时间之类。这些关于时间的业务逻辑,要求我们必须能熟练掌握python中关于时间的两个模块,time和datetime,只有用好了这两个模块,我们才能在代码中轻松自如的应对。

2、time模块

time模块中时间表现的格式主要有三种:

  • a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
  • b、struct_time时间元组,共有九个元素组。
  • c、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。

1、时间格式转换图

python中time、datetime模块的使用

2、常用方法

import time

print(time.time()) # 当前时间戳
>>> 1569645479.6079931

print(int(time.time()))
>>> 1569645479

print(time.strftime('%Y-%m-%d %H:%M:%S')) # 格式化的时间
>>> 2019-09-28 12:37:59

print(time.strftime('%Y-%m-%d'))
>>> 2019-09-28

print(time.strftime('%H:%M:%S'))
>>> 12:37:59

print(time.gmtime()) # 获取标准时区的时间元组,如果传入了时间戳,就是把时间戳转换成时间元组
>>> time.struct_time(tm_year=2019, tm_mon=9, tm_mday=28, tm_hour=4, tm_min=37, tm_sec=59, tm_wday=5, tm_yday=271, tm_isdst=0)

print(time.gmtime(1569645453))
>>> time.struct_time(tm_year=2019, tm_mon=9, tm_mday=28, tm_hour=4, tm_min=37, tm_sec=33, tm_wday=5, tm_yday=271, tm_isdst=0)

# 使用时间戳获取代码执行时间
s_time = time.time()
for i in range(0,10):
 time.sleep(1)
e_time = time.time()
print('代码运行时间是:', e_time-s_time)
>>> 代码运行时间是: 10.003105163574219

# 字符串格式化时间转换时间戳
str_time = '2019-9-28'
print(time.mktime(time.strptime(str_time, '%Y-%m-%d')))
>>> 1569600000.0

# 时间戳转换成格式化的时间字符串
gsh_time = time.time()
print(time.strftime('%Y-%m-%d', time.localtime(gsh_time)))
>>> 2019-09-28

3、datetime模块

datatime模块重新封装了time模块,提供更多接口,提供的类有:date,time,datetime,timedelta,tzinfo。

import datetime

now = datetime.datetime.now()
print(now)
>>> 2019-09-28 12:45:59.927901

now = datetime.datetime.now()
d1 = now - datetime.timedelta(hours=1) # 获取前一小时
d2 = now - datetime.timedelta(days=1) # 获取前一天
print(now)
>>> 2019-09-28 12:47:56.662933
print(d1)
>>> 2019-09-28 11:47:56.662933
print(d2)
>>> 2019-09-27 12:47:56.662933

# datetime对象转换成时间戳
dt = datetime.datetime.now()
print(time.mktime(dt.timetuple()))
>>> 1569646475.0

# 时间戳转换成datetime对象
sjc_time = time.time()
print(datetime.datetime.fromtimestamp(sjc_time))
>>> 2019-09-28 12:55:05.500752

以上就是python中time、datetime模块的使用的详细内容,更多关于python time、datetime模块的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
用Python脚本来删除指定容量以上的文件的教程
May 04 Python
Python中用于检查英文字母大写的isupper()方法
May 19 Python
python文件名和文件路径操作实例
Sep 29 Python
Python实现读取Properties配置文件的方法
Mar 29 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
Dec 04 Python
python实现横向拼接图片
Mar 23 Python
QML用PathView实现轮播图
Jun 03 Python
Pytest单元测试框架如何实现参数化
Sep 05 Python
关于python3.9安装wordcloud出错的问题及解决办法
Nov 02 Python
解决pycharm 格式报错tabs和space不一致问题
Feb 26 Python
python 中的jieba分词库
Nov 23 Python
python区块链持久化和命令行接口实现简版
May 25 Python
全面介绍python中很常用的单元测试框架unitest
Dec 14 #Python
python读写数据读写csv文件(pandas用法)
Dec 14 #Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
Dec 14 #Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 #Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
Dec 14 #Python
Python实现Kerberos用户的增删改查操作
Dec 14 #Python
python-地图可视化组件folium的操作
Dec 14 #Python
You might like
PHP 上传文件大小限制
2009/07/05 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
用javascript编写的第一人称射击游戏
2007/02/25 Javascript
javascript下function声明一些小结
2007/12/28 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
JS实现距离上次刷新已过多少秒示例
2014/05/23 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
基于Node.js实现压缩和解压缩的方法
2018/02/13 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
vue项目刷新当前页面的三种方法
2018/12/04 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
python计算最大优先级队列实例
2013/12/18 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
python实现NB-IoT模块远程控制
2018/06/20 Python
django的ORM模型的实现原理
2019/03/04 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
枚举与#define宏的区别
2014/04/30 面试题
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
校园歌手大赛策划书
2014/01/17 职场文书
12月红领巾广播稿
2014/02/13 职场文书
大学生未来职业生涯规划书
2014/02/15 职场文书
职位说明书范文
2014/05/07 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
2014年销售工作总结
2014/12/01 职场文书
2014年实验室工作总结
2014/12/03 职场文书
教师节简报
2015/07/20 职场文书