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制作数据导入导出工具
Jul 31 Python
Python 操作文件的基本方法总结
Aug 10 Python
python+VTK环境搭建及第一个简单程序代码
Dec 13 Python
python机器学习之贝叶斯分类
Mar 26 Python
用于业余项目的8个优秀Python库
Sep 21 Python
浅谈PYTHON 关于文件的操作
Mar 19 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
Flask模板引擎Jinja2使用实例
Apr 23 Python
pytorch使用horovod多gpu训练的实现
Sep 09 Python
Pandas替换及部分替换(replace)实现流程详解
Oct 12 Python
Django项目创建及管理实现流程详解
Oct 13 Python
解决Pytorch半精度浮点型网络训练的问题
May 24 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变量引用的面试题
2010/08/08 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
2017/03/19 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
简单了解JavaScript异步
2019/05/23 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
Python有序查找算法之二分法实例分析
2017/12/11 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
Python数据类型之List列表实例详解
2019/05/08 Python
Python Opencv任意形状目标检测并绘制框图
2019/07/23 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
Python selenium抓取虎牙短视频代码实例
2020/03/02 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
python Tornado框架的使用示例
2020/10/19 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
Java程序员面试90题
2013/10/19 面试题
优秀老师事迹材料
2014/02/05 职场文书
致裁判员加油稿
2014/02/08 职场文书
《画杨桃》教学反思
2014/04/13 职场文书
股指期货心得体会
2014/09/10 职场文书
2015秋季小学开学寄语
2015/05/27 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
Pytest中skip skipif跳过用例详解
2021/06/30 Python
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers