Python中的datetime包与time包包和模块详情


Posted in Python onFebruary 28, 2022

一、datetime包

1.timedelta(params…)得到一个时间增量对象

# coding:utf-8

from datetime import timedelta

if __name__ == '__main__':
    # 常用参数 hours:小时 days:天 seconds:秒 milliseconds:毫秒
    delta = timedelta(hours=2)
    print(delta)  # 2:00:00
    print(type(delta))  # <class 'datetime.timedelta'>

2.timezone(timedelta) + timedelta(params…) 创建时区对象

# coding:utf-8

from datetime import timedelta, timezone

if __name__ == '__main__':
    delta = timedelta(hours=2)
    zone = timezone(delta)  #配合timedelta创建时区对象
    print(zone)  # UTC+02:00
    print(type(zone))  # <class 'datetime.timezone'>

3.datetime模块

datetime.now(timezone) 获取当前时间datetime对象
# coding:utf-8

from datetime import timedelta, timezone, datetime

if __name__ == '__main__':
    '''
    获取当前时间,可以获取指定时区的当前时间
    datetime.now(timezone)
    '''
    now = datetime.now()
    print(now)  # 2022-02-23 13:59:59.224286
    print(type(now))  # <class 'datetime.datetime'>

    # 设置指定时区的当前时间
    print(datetime.now((timezone(timedelta(hours=9)))))  # 2022-02-23 14:59:59.224286+09:00

datetime.strftime(fmt) datetime时间对象转字符串

# coding:utf-8

from datetime import datetime

if __name__ == '__main__':
    '''
    datetime.strftime(fmt)
    将时间对象转换成字符串
    fmt:格式化标准,由格式符组成
    常用格式符(年:%Y,月:%m,日:%D,时:%H,分:%M,秒:%S)
    '''
    now = datetime.now()
    print(now.strftime('%Y-%m-%d %H:%M:%S'))  # 2022-02-23 14:04:24

datetime.strptime(date_string,fmt) 字符串转成datetime时间对象

# coding:utf-8
from datetime import datetime

if __name__ == '__main__':
    '''
    datetime.strptime(date_string,fmt)
    将字符串转换成时间对象,要求date_string的格式完全匹配fmt格式化标准
    '''
    time_obj = datetime.strptime('2022-2-22', '%Y-%m-%d')
    # datetime.strptime('2022-2-22', '%Y-%m-%d %H') Error date_string 中不存在小时而fmt中要求有小时
    print(datetime.strptime('2022-2-22 14', '%Y-%m-%d %H'))  # 2022-02-22 14:00:00
    print(time_obj)  # 2022-02-22 00:00:00
    print(type(time_obj))  # <class 'datetime.datetime'>

datetime.timestamp(datetime_obj) 将datetime时间对象转换成秒级时间戳

# coding:utf-8

from datetime import datetime

if __name__ == '__main__':
    '''
    datetime.timestamp(datetime_obj) 
    datetime_obj:datetime 时间对象
    返回 float
    '''
    print(datetime.timestamp(datetime.now()))  # 1645598565.715

datetime.fromtimestamp(t) 将秒级时间戳转换成datetime时间对象

# coding:utf-8

from datetime import datetime, timedelta, timezone

if __name__ == '__main__':
    '''
    datetime.fromtimestamp(t)
    t:秒级时间戳 float类型
    返回:datetime时间对象
    '''
    datetime_obj = datetime.fromtimestamp(1645598565.715)
    print(datetime_obj)  # 2022-02-23 14:42:45.715000
    print(type(datetime_obj))  # <class 'datetime.datetime'>

4.使用datetime对象 + timedelta(params…) 进行时间运算

# coding:utf-8

from datetime import datetime, timedelta, timezone

if __name__ == '__main__':
    now = datetime.now()
    fmt = '%Y-%m-%d %H:%M:%S'
    print(now.strftime(fmt))  # 2022-02-23 15:07:01

    # 3小时后时间
    print((now + timedelta(hours=3)).strftime(fmt))  # 2022-02-23 18:07:01

    # 3小时前时间
    print((now - timedelta(hours=3)).strftime(fmt))  # 2022-02-23 12:07:01
    print((now + timedelta(hours=-3)).strftime(fmt))  # 2022-02-23 12:07:01

    # 建议timedelta的参数都使用正数(容易理解)

二、time包

1.time.time() 得到当前秒级时间戳

# coding:utf-8

import time

if __name__ == '__main__':
    print(time.time())  # 1645667203.7236724

2.time.localtime(second) 将秒转换成time时间对象

# coding:utf-8

import time

if __name__ == '__main__':
    # second 不填,则默认当前的时间戳
    t = time.localtime(time.time())
    t2 = time.localtime()
    print(t)  # time.struct_time(tm_year=2022, tm_mon=2, tm_mday=24, tm_hour=10, tm_min=10, tm_sec=8, tm_wday=3, tm_yday=55, tm_isdst=0)
    print(t2)  # time.struct_time(tm_year=2022, tm_mon=2, tm_mday=24, tm_hour=10, tm_min=10, tm_sec=8, tm_wday=3, tm_yday=55, tm_isdst=0)
    print(type(t))  # <class 'time.struct_time'>
    print(type(t2))  # <class 'time.struct_time'>

3.time.strftime(fmt,time_obj) 将time时间对象转换成字符串

# coding:utf-8

import time

if __name__ == '__main__':
    """
    time.strftime(fmt,time_obj)
    fmt:格式化标准 参考 datetime.strftime(fmt)
    time_obj:time时间对象,不填默认是当前日期的time时间对象
    """
    t = time.localtime(time.time() + 3600)
    print(time.strftime('%Y-%m-%d %H:%M:%S'))  # 2022-02-24 10:16:17
    print(time.strftime('%Y-%m-%d %H:%M:%S', t))  # 2022-02-24 11:16:17

4.time.strptime(time_string,fmt) 将字符串转换成time时间对象

# coding:utf-8

import time

if __name__ == '__main__':
    """
    time.strptime(time_string,fmt)
    参考 datetime.strptime(date_string,fmt)
    time_string:时间字符串
    fmt:格式化标准
    """
    fmt = '%Y-%m-%d %H:%M:%S'
    t = time.strftime(fmt, time.localtime())
    print(t)  # 2022-02-24 10:25:17
    print(time.strptime(t, fmt))  # time.struct_time(tm_year=2022, tm_mon=2, tm_mday=24, tm_hour=10, tm_min=25, tm_sec=40, tm_wday=3, tm_yday=55, tm_isdst=-1)

5.time.sleep(second) 休眠 second 秒

# coding:utf-8

import time

if __name__ == '__main__':
    print(time.time())  # 1645670183.6567423
    time.sleep(2)
    print(time.time())  # 1645670185.6708047

到此这篇关于Python中的datetime包与datetime包和模块详情的文章就介绍到这了,更多相关Python时间相关包和模块内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python生成式的send()方法(详解)
May 08 Python
Python使用struct处理二进制的实例详解
Sep 11 Python
Python内置函数——__import__ 的使用方法
Nov 24 Python
python+influxdb+shell编写区域网络状况表
Jul 27 Python
python2与python3的print及字符串格式化小结
Nov 30 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
python与字符编码问题
May 24 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
python的debug实用工具 pdb详解
Jul 12 Python
Django ORM 自定义 char 类型字段解析
Aug 09 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
Apr 17 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
Jun 28 Python
Python 数据可视化神器Pyecharts绘制图像练习
Python使用OpenCV实现虚拟缩放效果
python保存图片的四个常用方法
Python可视化学习之seaborn调色盘
Python可视化学习之matplotlib内置单颜色
Python可视化学习之seaborn绘制矩阵图详解
Python matplotlib可视化之绘制韦恩图
You might like
PHP simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
ThinkPHP安装和设置
2015/07/27 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
Python基础知识_浅谈用户交互
2017/05/31 Python
Python使用pymongo模块操作MongoDB的方法示例
2018/07/20 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
allbeauty美国:英国在线美容店
2019/03/11 全球购物
澳大利亚在线奢侈品时尚零售平台:Azura Runway
2021/01/13 全球购物
如何获得EntityManager
2014/02/09 面试题
年度考核评语
2014/01/19 职场文书
我的老师教学反思
2014/05/01 职场文书
保护野生动物倡议书
2014/05/16 职场文书
节约用电标语
2014/06/17 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
幼儿园科学课教学反思
2016/03/03 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
python 机器学习的标准化、归一化、正则化、离散化和白化
2021/04/16 Python