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读写unicode文件的方法
Jul 10 Python
Python Requests安装与简单运用
Apr 07 Python
python面向对象_详谈类的继承与方法的重载
Jun 07 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
Mar 13 Python
Python采集代理ip并判断是否可用和定时更新的方法
May 07 Python
使用Python 正则匹配两个特定字符之间的字符方法
Dec 24 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
解决Python使用列表副本的问题
Dec 19 Python
Python3 把一个列表按指定数目分成多个列表的方式
Dec 25 Python
给numpy.array增加维度的超简单方法
Jun 02 Python
Python函数式编程中itertools模块详解
Sep 15 Python
Python 数据可视化神器Pyecharts绘制图像练习
Python使用OpenCV实现虚拟缩放效果
python保存图片的四个常用方法
Python可视化学习之seaborn调色盘
Python可视化学习之matplotlib内置单颜色
Python可视化学习之seaborn绘制矩阵图详解
Python matplotlib可视化之绘制韦恩图
You might like
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
php设计模式之单例模式代码
2016/06/11 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
JScript中的undefined和&quot;undefined&quot;的区别
2007/03/08 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
2013/04/15 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
删除条目时弹出的确认对话框
2014/06/05 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
JS实现文件动态顺序载入的方法
2015/03/07 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
javascript+css实现俄罗斯方块小游戏
2020/06/28 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
python使用socket远程连接错误处理方法
2015/04/29 Python
深入解析Python中函数的参数与作用域
2016/03/20 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
新东方旗下远程教育网站:新东方在线
2020/03/19 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
导师评语大全
2014/04/26 职场文书
师德师风演讲稿
2014/05/05 职场文书
群众路线表态发言材料
2014/10/17 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL
Windows11插耳机没反应怎么办? win11耳机没声音的多种解决办法
2021/11/21 数码科技
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技