常用模块之(time/datetime)

【 一 】时间模块(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字符串、格式时间元组

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

低代码开发平台的优势及应用场景分析

文章目录 低代码是什么&#xff1f;低代码起源低代码分类低代码的能力低代码的需求市场需要专业开发者需要数字化转型需要 低代码的趋势如何快速入门低代码开发低代码应用领域 低代码是什么&#xff1f; 低代码&#xff08;Low-code&#xff09;是著名研究机构Forrester于2014…

lseek()函数的原型及使用方法,超详细

对于所有打开的文件都有一个当前文件偏移量(current file offset)&#xff0c;文件偏移量通常是一个非负整数&#xff0c;用于表明文件开始处到文件当前位置的字节数。 读写操作通常开始于当前文件偏移量的位置&#xff0c;并且使其增大&#xff0c;增量为读写的字节数。文件被…

机器视觉技术与应用实战(Chapter Two-04)

2.6 图像形态学及常见的图像处理工具 图像形态学&#xff1a;是分析几何形状和结构的数字方法&#xff0c;是建立在集合代数的基础上用集合论方法定量描述几何结构的学科。基本的图像形态学算法有&#xff1a;腐蚀&#xff08;Erode&#xff09;、膨胀&#xff08;Dilate&…

geemap学习笔记028:Landsat8计算时间序列NDVI并导出

前言 本节则是以Landsat8影像数据为例&#xff0c;进行NDVI时间序列计算&#xff0c;并将得到的时间序列NDVI进行展示并导出。 1 导入库并显示地图 import ee import geemap import datetime import pandas as pd import os ee.Initialize()2 定义时间范围 # 定义日期范围 …

【ECMAScript笔记四】自定义对象(创建,遍历)、内置对象(Math、Data、Array、String)、数据类型比较

文章目录 10 自定义对象10.1 创建对象方式10.1.1 字面量10.1.2 new object10.1.3 构造函数 10.2 遍历对象 11 内置对象11.1 Math 数学对象11.2 Date 时间对象11.3 Array 数组对象11.4 String 字符串对象 12 简单数据类型和复杂数据类型 10 自定义对象 JavaScript中的对象分为3…

频谱论文:基于张量Tucker分解的频谱地图构建算法

#频谱# [1]陈智博,胡景明,张邦宁 郭道省.(2023).基于张量Tucker分解的频谱地图构建算法.电子与信息学报(11),4161-4169. &#xff08;陆军工程大学&#xff09; 研究内容 将动态电磁环境的时变频谱地图建模为3维频谱张量&#xff0c;通过张量Tucker分解提取出具有物理意义的核…

使用级联毫米波传感器的成像雷达参考设计2(TI文档)

3.4 级联雷达信号处理链 3.4.1 MIMO雷达信号处理链 以MIMO模式收集的原始信号按照图16所示的流程进行处理。 图16 MIMO信号处理链 3.4.1.1 ADC数据读取和校准 每次数据采集后&#xff0c;将保存4个级联设备对应的二进制数据文件和相应的chirp配置文件。这两个文件是ADC数据读…

Zabbix+Grafana

背景 对指标采集 将采集的信息存储 可视化 报警 因为节点上本身就是zabbix&#xff0c;但对应的server在数据中心&#xff0c;不知道一个agent可否服务于多个server端&#xff0c;而且不确定数据中心是否会提供用户。所以还是放弃zabbix 架构

干货下载丨不分业态、不关注核心需求,怎么做得好项目管理?!

项目管理&#xff1a;装备制造业的破局利刃 对于装备制造行业而言&#xff0c;每一笔订单都是非标定制、小批量制造。这种特性决定了其行业企业普遍存在新品开发周期长、生产效率低、质量不稳定、交货期不稳定、成本预算难控制、非标品报价慢等问题。 如何提升企业的管理水平…

回溯算法去重的两种写法

回溯算法去重的两种写法 关于回溯&#xff0c;无论是排列、组合、子集&#xff0c;都会涉及到两个问题&#xff0c;一个是去重&#xff0c;另一个则是剪枝&#xff1b; 去重通常有几种方法。 以这道题来做验证。 90.子集II 力扣题目链接(opens new window) 给定一个可能包…

【数据结构】树状数组总结

知识概览 树状数组有两个作用&#xff1a; 快速求前缀和 时间复杂度O(log(n))修改某一个数 时间复杂度O(log(n)) 例题展示 1. 单点修改&#xff0c;区间查询 题目链接 活动 - AcWing本活动组织刷《算法竞赛进阶指南》&#xff0c;系统学习各种编程算法。主要面向…

JavaSE第7篇:封装

文章目录 前言一、封装1、好处:2、使用 二、四种权限修饰符三、构造器1、作用2、说明3、属性赋值的过程 四 、JavaBean的使用五、UML类图六 、Java关键字1、this说明2 、this可以用来修饰属性、方法3、 this调用构造器 前言 不管学什么都可以按3w: what? why? how?&#xf…

AttributeError: module ‘jax‘ has no attribute ‘Array‘解决方案

大家好&#xff0c;我是爱编程的喵喵。双985硕士毕业&#xff0c;现担任全栈工程师一职&#xff0c;热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

NET模式和桥接模式简要概述

NET模式 NAT是Network Address Translation的缩写&#xff0c;即网络地址转换。NAT模式也是VMware创建虚拟机的默认网络连接模式。在NAT模式中&#xff0c;让虚拟机借助NAT功能&#xff0c;通过宿主机器所在的网络来访问公网。这里的宿主机相当于有两个网卡&#xff0c;一个是…

【FPGA】电梯楼层显示(简易)

前言 这是作者室友的项目&#xff0c;本来不管作者事儿的&#xff0c;但是后来听到说是室友去网上找人花了80块买了个劣质的&#xff0c;不仅是从CSDN上抄的&#xff0c;而且使用的板子还不符合室友的要求。可叹作者心软啊&#xff0c;顺便给室友做了。 在代码实现部分会给出设…

【学习笔记】V8垃圾回收策略

V8 V8是一款主流的JavaScript执行引擎V8采用即时编译,速度比较快V8内存设限,64位操作系统中上限为1.5G,32位系统中不超过800M V8垃圾回收策略 采用分代回收的思想内存分为新生代\老生代针对不同对象采用不同算法 v8常用的GC算法: 分代回收、空间复制、标记清除、标记整理、…

RDD编程

目录 一、RDD编程基础 &#xff08;一&#xff09;RDD创建 &#xff08;二&#xff09;RDD操作 1、转换操作 2、行动操作 3、惰性机制 &#xff08;三&#xff09;持久化 &#xff08;四&#xff09;分区 &#xff08;五&#xff09;一个综合实例 二、键值对RDD &am…

系列九、事务

一、事务 1.1、概述 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向系统提交或者撤销操作请求&#xff0c;即&#xff1a;这些操作要么同时成功&#xff0c;要么同时失败。 例如: 张三给李四转账1000块钱&…

C语言短路操作

C语言短路操作 目录 一&#xff0e; 概述二&#xff0e; 例题 一&#xff0e; 概述 C语言中常用的短路操作符有两个&#xff0c;即逻辑与&#xff08;&&&#xff09;和逻辑或&#xff08;||&#xff09;。   对于逻辑与&#xff08;&&&#xff09;操作符&…

TCP/IP详解——FTP 协议,Telnet协议

文章目录 1. FTP 协议1.1 FTP的应用1.2 FTP传输文件的过程1.3 FTP传输模式1.4 主动模式&#xff08;Active Mode&#xff09;1.5 Active Mode 抓包分析1.6 被动模式&#xff08;Passive Mode&#xff09;1.7 Passive Mode 抓包分析 2. Telnet 协议2.1 Telnet 概念2.2 Telnet 协…