常用模块之(time/datetime)

news2024/11/28 18:48:08

【 一 】时间模块(time/datetime)

【 二 】 表示时间的三种方式

  • *时间戳(Timestamp)是指1970年1月1日00:00:00开始计算的偏移量。可以使用time模块中的time()函数获取当前时间的时间戳,也可以使用datetime模块中的timestamp()方法将日期时间对象换转为时间戳。**

    import time
    import datetime
    ​
    #获取当前时间的时间戳
    time = time.localtime()
    print('当前的时间元组为: ',time)
    ​
    ## 将日期时间对象转换为时间戳
    dt = datetime.datetime(2023,12,17,14,46,0)
    time2 = dt.time()
    print('时间元组为',time2)
    ​
    #当前的时间元组为:  time.struct_time(tm_year=2023, tm_mon=12, tm_mday=17, tm_hour=14, tm_min=46, tm_sec=27, tm_wday=6, tm_yday=351, tm_isdst=0)
    # 时间元组为 14:46:00
    ​
  • 时间元组(Tuple) : 是指包含了年、月、日、时、分、秒、周几、一年中第几天等信息的元组。可以使用time模块中的struct_time类来表示时间元组,也可以使用datetime模块中的timetuple()方法将日期对象转换为时间元组。

    #获取当前时间元组
    timetuple1 = time.localtime()
    print('当前时间元组为: ',timetuple1)
    ​
    #将日期时间对象转换为时间元组
    dt = datetime.datetime(2023,12,17,14,59)
    timetuple2 = dt.timetuple()
    print("2023年12月17日14:59:00时间元组为: ",timetuple2)
    ​
    # 当前时间元组为:  time.struct_time(tm_year=2023, tm_mon=12, tm_mday=17, tm_hour=15, tm_min=0, tm_sec=53, tm_wday=6, tm_yday=351, tm_isdst=0)
    # 2023年12月17日14:59:00时间元组为:  time.struct_time(tm_year=2023, tm_mon=12, tm_mday=17, tm_hour=14, tm_min=59, tm_sec=0, tm_wday=6, tm_yday=351, tm_isdst=-1)
    ​
  • 日期时间对象(Datetime):指包含了年、月、时、分、秒等信息对象。可以使用datetime模块中的datetime类来表示日期时间对象,也可以使用time模块中的getime()、localtime()方法将时间戳转换为日期时间对象。

    # 获取当前时间的日期时间对象
    dt = datetime.datetime.now()
    print("当前日期时间为:",dt)
    ​
    # 将时间戳转换为日期时间对象
    timmstamp = time.time()
    dt2 = datetime.datetime.fromtimestamp(timmstamp)
    ​
    print('时间戳',timmstamp,'对应的日期时间为:',dt2)
    # 当前日期时间为: 2023-12-17 15:07:46.678838
    # 时间戳 1702796866.6788387 对应的日期时间为: 2023-12-17 15:07:46.678839
    ​

【 三 】time

1.time

这样就可以实现一个查看当前时间戳

import time
print(time.time())
#1702797281.6670616

2.localtime:查看当前时间的时间(以元组的形式)

如果我们不加参数,默认是当前时间的时间戳作为参数

传入的参数是时间戳。默认是当前时间的时间戳
import time
time.localtime()#当前时间
#time.localtime(1702797982.5156393)#指定时间戳
time_tuple = time.struct_time((2023, 12, 17, 15, 21, 1, 5, 351, 0))
print(time_tuple)
#time.struct_time(tm_year=2023, tm_mon=12, tm_mday=17, tm_hour=15, tm_min=21, tm_sec=1, tm_wday=5, tm_yday=351, tm_isdst=0)

下图是每个参数的含义解释:

image-20231217153301784

3、gmtime:返回当前时间的struct_time形式,UTC时区(0时区) ,可传入时间戳格式时间

传入的参数必须是时间戳。默认是当前时间的时间戳

import time
#默认当前时间戳
第一种
time_tuple1 = time.gmtime()
print(time_tuple1)
#time.struct_time(tm_year=2023, tm_mon=12, tm_mday=17, tm_hour=7, tm_min=38, tm_sec=40, tm_wday=6, tm_yday=351, tm_isdst=0)
第二种
timestamp = time.time()  # 获取当前时间戳
time_tuple2 = time.gmtime(timestamp)
print(time_tuple2)
#time.struct_time(tm_year=2023, tm_mon=12, tm_mday=17, tm_hour=7, tm_min=39, tm_sec=6, tm_wday=6, tm_yday=351, tm_isdst=0)

4、asctime:返回字符串形式的时间,可以传入struct_time形式时间,用来做转化

传入的参数是时间元组形式;结果是字符串形式

(1)默认情况使用:

print(time.asctime())
#Sun Dec 17 15:40:35 2023

(2)通过time.localtime()得到一个时间元组形式:

date = time.localtime(1600200200)
print(date)
#time.struct_time(tm_year=2020, tm_mon=9, tm_mday=16, tm_hour=4, tm_min=3, tm_sec=20, tm_wday=2, tm_yday=260, tm_isdst=0)
​
print(time.asctime(date))
#Wed Sep 16 04:03:20 2020

(3)传入当地时间的时间戳形式:

print(time.asctime(time.localtime()))
# Sun Dec 17 15:44:32 2023

(4)通过time.time()得到时间戳,再将结果传给time.localtime(),得到时间元组,最后将元组再传给time.asctime():

print(time.asctime(time.localtime(time.time())))
# Sun Dec 17 15:45:26 2023

5、ctime:返回字符串形式的时间,可以传入时间戳格式时间,用来做转化

传入的参数是时间戳,结果是字符串形式

(1)默认情况

print(time.ctime())
# Sun Dec 17 15:46:39 2023

(2)指定某个时间戳

print(time.time())
print(time.ctime(1702799240.7366652))
# 1702799258.9206767
# Sun Dec 17 15:47:20 2023

(3)传入中间结果的时间戳

time.time()得到的是当前时间的时间戳

print(time.ctime(time.time()))
# Sun Dec 17 15:48:37 2023

6、mktime:时间元组转成时间戳形式,必须带上时间元组作为参数

传入参数是时间元组形式,返回的结果是时间戳

print(time.mktime())
# Traceback (most recent call last):
#   File "C:\Users\小白\PycharmProjects\pythonProject2\3\时间模块.py", line 88, in <module>
#     print(time.mktime())
#           ^^^^^^^^^^^^^
# TypeError: time.mktime() takes exactly one argument (0 given)  因为缺少参数()里面必须要传入一个参数

(1)通过time.localtime()得到时间元组,传给time.mktime

date1 = time.localtime()
print(date1)
print(time.mktime(date1))
#time.struct_time(tm_year=2023, tm_mon=12, tm_mday=17, tm_hour=16, tm_min=13, tm_sec=52, tm_wday=6, tm_yday=351, tm_isdst=0)
# 1702800832.0

(2)传入其他事件元组的结果作为参数

print(time.mktime(time.gmtime()))
# 1702772817.0

7、strftime:把一个时间元组格式化为时间字符串。如果未指定,默认将传入time.localtime()。如果元组中任何一个元素越界,将会报错。

传入参数是元组格式的时间,返回结果是时间字符串

(1)默认输出的都是当前时间

data = time.strftime('%y-%m,-%d')
print(data)#23-12,-17
​
print(time.strftime('%y/%m,/%d'))
​
print(time.strftime('%y/%m,/%d %H:%M:%S'))
​
print(time.strftime('%y/%B,/%d %I:%M:%S %p'))
# 23-12,-17
# 23/12,/17
# 23/12,/17 16:59:27
# 23/December,/17 04:59:27 PM

(2)指定某个时间元组

在指定格式的同时,我们还可以传入一个时间元组:

print(time.strftime("%y/%m/%d %H:%M:%S",time.localtime(1702799240.7366652)))
# 23/12/17 15:47:20

下表格是常用的时间格式和含义:

格式含义取值范围(样式)
%y去掉世纪的年份00-99,如“19”
%Y完整的年份如2019
%j指定日期是一年中的第几天范围001-366
%m返回的是月份范围:01-12
%b本地简化月份的名称简写的英文月份
%B本地完整月份的名称完整的英文月份
%d该月的第几日如,5月1日返回的是“01”
%H第几小时,24小时制00-23
%l第几小时,12小时制00-12
%M分钟00-59
%S00-59
%U该年中的第几个星期(周日为一周的起点)00-53
%W同上,周一为起点00-53
%w一个星期中的第几天0-6
%Z时区在大陆测试返回的是CST
%x日期日/月/年
%X时间时:分:秒
%c详细日期时间日/月/年时:分:秒
%%%字符'%'字符
%p上下午AM or PM

8、strptime:将字符串形式的时间转成时间元组;和strftime相反功能

两个参数:第一个是字符串形式的时间数据,第二个是我们指定的格式

import time
​
time_str = '23/12/17 17:06:17'
time_format = '%y/%m/%d %H:%M:%S'
​
# 将时间字符串解析为时间元组
time_tuple = time.strptime(time_str, time_format)
​
# 将时间元组格式化为指定格式的字符串
formatted_time = time.strftime(time_format, time_tuple)
#23/12/17 17:06:17
​

8大方法总结

time模块的8大方法的输入和输出总结:

方法输入输出
time时间戳
localtime时间戳时间元组
gmtime时间戳时间元组
asctime时间元组字符串
ctime时间戳字符串
mktime时间元组时间戳
strftime格式、时间元组(可选)字符串
strptime字符串、格式时间元组

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1318511.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ArrayList vs. LinkedList: Java集合框架的比较与应用

目录 1. ArrayList简介 2. LinkedList简介 3. 内部实现方式 3.1 ArrayList的内部实现 3.2 LinkedList的内部实现 4. 时间复杂度比较 4.1 插入和删除操作 4.2 随机访问操作 5. 内存消耗 5.1 ArrayList的内存消耗 5.2 LinkedList的内存消耗 6. 适用场景 6.1 ArrayLi…

【小沐学Python】Python实现通信协议(grpc)

文章目录 1、简介2、安装3、定义接口4、编译生成5、代码编写5.1 服务端5.2 客户端5.3 运行测试 结语 1、简介 https://grpc.io/docs/what-is-grpc/introduction/ https://github.com/grpc/grpc gRPC 是一种现代、开源、高性能的远程过程调用 &#xff08;RPC&#xff09; 可以…

LRU 缓存机制_题解(一道经典的数据结构算法题)

LRU 缓存机制_题解&#xff08;一道经典的数据结构算法题&#xff09; 146. LRU 缓存 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int k…

ADB命令安装卸载手机APP

前言 手机内置的浏览器很多广告&#xff0c;推荐的新闻也很多负面的新闻&#xff0c;所以就想卸载内置的手机app&#xff0c;不过现在很多手机都是限制了内置的软件都不能卸载&#xff0c;以前随便获取一下root权限&#xff0c;也是可以卸载的&#xff0c;不过最近搞了一下&am…

基于YOLOv8深度学习的路面标志线检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

HarmonyOS开发实战:如何实现一个运动排名榜页面

HarmonyOS开发实战&#xff1a;如何实现一个运动排名榜页面 代码仓库&#xff1a; 运动排名榜页面 项目介绍 本项目使用声明式语法和组件化基础知识&#xff0c;搭建一个可刷新的排行榜页面。在排行榜页面中&#xff0c;使用循环渲染控制语法来实现列表数据渲染&#xff0c;…

PyCharm community 安装教程

目录 链接cudatoolkit 下载地址&#xff1a;https://www.jetbrains.com/pycharm/download/other.html 双击打开 安装路径&#xff0c;可自行更换到D盘 不导入设置 链接cudatoolkit

雪花算法(几种常见的雪花算法生成ID方案简单介绍:Hutool、百度Uid-Generator、美团Leaf、Yitter)

文章目录 1.生成id的几种方式2. 雪花算法2.1 雪花算法介绍2.2 市面上几种雪花算法的实现2.2.1 hutool版2.2.1.1 hutool版本雪花算法 关于时钟回拨的处理&#xff1a; ---------------百度UidGenerator 介绍开始--------------2.2.2 百度版&#xff1a;[UidGenerator](https://g…

【动态规划精选题目】2、路径问题模型

此动态规划系列主要讲解大约10个系列【后续持续更新】 本篇讲解路径问题模型中的6道经典题&#xff0c;会在讲解题目同时给出AC代码 目录 1、不同路径 2、不同路径2 3、珠宝的最大价值 4、下降路径最小和 5、最小路径和 6、地下城游戏 1、不同路径 class Solution { publi…

二叉树前,中序推后续_中,后续推前序

文章目录 介绍思路例子 介绍 二叉树是由根、左子树、右子树三部分组成。 二叉树的遍历方式又可以分为前序遍历&#xff0c;中序遍历&#xff0c;后序遍历。 前序遍历&#xff1a;根&#xff0c;左子树&#xff0c;右子树 中序遍历&#xff1a;左子树&#xff0c;根&#xff0…

Tor网络原理详解

引入 匿名通信是一种通过采用数据转发、内容加密、流量混淆等措施来隐藏通信内容及关系的隐私保护技术。为了提高通信的匿名性&#xff0c;这些数据转发链路通常由多跳加密代理服务节点构成&#xff0c;而所有这些节点即构成了匿名通信系统&#xff08;或称匿名通信网络&#…

ReenterLock重入锁

synchronized就是一种最简单的控制方法&#xff0c;它决定了一个线程释放可以访问临界区资源。 同时&#xff0c;Object.wait()方法和Object.notify()方法起到了线程等待和通知的作用。 ReenterLock重入锁可以完全替代关键字Synchoronized.重入锁是Synchoronized、Object.wait(…

使用podman管理容器

目录 1.安装及配置podman 2.镜像的命名 3.对镜像重新做标签 4.删除镜像 5.查看镜像的层结构 6.导出和导入镜像 7.创建容器 8.创建一个简单的容器 9.容器的生命周期 10.创建临时容器 11.指定容器中运行的命令 12.创建容器时使用变量 对于初学者来说&#xff0c;不太容易理…

深入解析HashMap数据结构及其应用

目录 引言 1. HashMap简介 2. 哈希表的基本原理 3. HashMap的内部结构 4. 哈希冲突的处理 5. HashMap的常见操作 6. HashMap的性能优化 7. 实际应用场景 结论 引言 在计算机科学中&#xff0c;数据结构是构建和组织数据的一种方式&#xff0c;而HashMap是其中一种常用…

TCP单人聊天

TCP和UDP两种通信方式它们都有着自己的优点和缺点 这两种通讯方式不通的地方就是TCP是一对一通信 UDP是一对多的通信方式 TCP通信 TCP通信方式呢 主要的通讯方式是一对一的通讯方式&#xff0c;也有着优点和缺点 它的优点对比于UDP来说就是可靠一点 因为它的通讯方式是需…

ripro后台登录后转圈和图标不显示的原因及解决方法

最近&#xff0c;好多小伙伴使用ripro主题的小伙伴们都发现&#xff0c;登录后台后&#xff0c;进入主题设置就转圈&#xff0c;等待老半天后好不容易显示页面了&#xff0c;却发现图标不显示了&#xff0c;都统一显示为方框。 这是因为后台的js、css这类静态资源托管用的是js…

02-分组查询group by和having的使用

分组查询 MySQL中默认是对整张表的数据进行操作即整张表为一组, 如果想对每一组的数据进行操作,这个时候我们需要使用分组查询 分组函数的执行顺序: 先根据where条件筛选数据,然后对查询到的数据进行分组,最后也可以采用having关键字过滤取得正确的数据 group by子句 在一条…

FME之FeatureReader转换器按表格内容读取矢量数据

问题&#xff1a;平时会遇到只用某个大数据里某小部分数据参与下一步数据处理&#xff0c;此时我们会用到FeatureReader转换器&#xff0c;一般是通过空间关系&#xff08;相交、包含&#xff09;来读取相应涉及的图斑矢量&#xff0c;但就有一个问题&#xff0c;加入你的启动器…

JS中浅拷贝和深拷贝

本篇文章咱们一起来学习下JS中的浅拷贝和深拷贝&#xff0c;了解它们在内存上的区别&#xff0c;并掌握浅拷贝和深拷贝的常用实现方法。 引用赋值 在学习拷贝之前&#xff0c;咱们先来看一个常见的情景&#xff0c;如下图&#xff1a; 大家觉得这是深拷贝还是浅拷贝&#xff0…

ensp创建配置环境,实现全网互访

文章目录 创建配置环境&#xff0c;实现全网互访配置步骤接入层交换机&#xff08;sw4、sw5&#xff09;划分vlan汇聚层交换机&#xff08;sw2、sw3&#xff09;配置ip地址作为vlan网关、与sw1 ip地址直连核心层交换机&#xff08;sw1&#xff09;配置ip地址与汇聚层交换机&…