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实现Windows和Linux之间互相传输文件(文件夹)的方法
May 08 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
Python骚操作之动态定义函数
Mar 26 Python
详解Python 字符串相似性的几种度量方法
Aug 29 Python
如何在mac环境中用python处理protobuf
Dec 25 Python
Python中用pyinstaller打包时的图标问题及解决方法
Feb 17 Python
Python模拟伯努利试验和二项分布代码实例
May 27 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
Sep 03 Python
DRF使用simple JWT身份验证的实现
Jan 14 Python
python中threading和queue库实现多线程编程
Feb 06 Python
Python OpenCV实现图形检测示例详解
Apr 08 Python
Python 数据可视化神器Pyecharts绘制图像练习
Python使用OpenCV实现虚拟缩放效果
python保存图片的四个常用方法
Python可视化学习之seaborn调色盘
Python可视化学习之matplotlib内置单颜色
Python可视化学习之seaborn绘制矩阵图详解
Python matplotlib可视化之绘制韦恩图
You might like
PHP冒泡排序算法代码详细解读
2011/07/17 PHP
数组与类使用PHP的可变变量名需要的注意的问题
2013/06/20 PHP
提升PHP性能的21种方法介绍
2013/06/25 PHP
PHP JWT初识及其简单示例
2018/10/10 PHP
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
详解Vue.js分发之作用域槽
2017/06/13 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
详解Puppeteer 入门教程
2018/05/09 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
vuex实现购物车的增加减少移除
2020/06/28 Javascript
JS实现页面鼠标点击出现图片特效
2020/08/19 Javascript
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
Python中的map、reduce和filter浅析
2014/04/26 Python
python登陆asp网站页面的实现代码
2015/01/14 Python
Python中的hypot()方法使用简介
2015/05/18 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
python datetime中strptime用法详解
2019/08/29 Python
如何在mac环境中用python处理protobuf
2019/12/25 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
中国文明网签名寄语
2014/01/18 职场文书
法人委托书
2014/07/31 职场文书
会议主持词结束语
2015/07/03 职场文书
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers