常用模块之(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字符串、格式时间元组

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

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

相关文章

大创项目推荐 深度学习 python opencv 实现人脸年龄性别识别

文章目录 0 前言1 项目课题介绍2 关键技术2.1 卷积神经网络2.2 卷积层2.3 池化层2.4 激活函数&#xff1a;2.5 全连接层 3 使用tensorflow中keras模块实现卷积神经网络4 Keras介绍4.1 Keras深度学习模型4.2 Keras中重要的预定义对象4.3 Keras的网络层构造 5 数据集处理训练5.1 …

ElasticSearch学习篇8_Lucene之数据存储(Stored Field、DocValue、BKD Tree)

前言 Lucene全文检索主要分为索引、搜索两个过程&#xff0c;对于索引过程就是将文档磁盘存储然后按照指定格式构建索引文件&#xff0c;其中涉及数据存储一些压缩、数据结构设计还是很巧妙的&#xff0c;下面主要记录学习过程中的StoredField、DocValue以及磁盘BKD Tree的一些…

PyQt6 QScrollBar滚动条控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计48条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…

录制第一个jmeter性能测试脚本2(http协议)_图书管理系统

我们手工编写了一个测试计划&#xff0c;现在我们通过录制的方式来实现那个测试计划。也就是说‘’测试计划目标和上一节类似&#xff1a;让5个用户在2s内登录图书管理系统&#xff0c;然后进入 页面进行查看。 目录 欢迎访问我的免费课程 PPT、安装包、视频应有尽有&#xff…

【微服务】Spring Aop原理深入解析

目录 一、前言 二、aop概述 2.1 什么是AOP 2.2 AOP中的一些概念 2.2.1 aop通知类型 2.3 AOP实现原理 2.3.1 aop中的代理实现 2.4 静态代理与动态代理 2.4.1 静态代理实现 三、 jdk动态代理与cglib代理 3.1 jdk动态代理 3.1.1 jdk代理示例 3.1.2 jdk动态代理模拟实现…

【OpenCV】 OpenCV 源码编译并实现 CUDA 加速 (Windows)

OpenCV 源码编译并实现 CUDA 加速 Windows 1. 环境准备1.1 软件环境1. 2 源码下载 2. CMake编译项目2.1 创建cmake项目2.2 设置编译配置2.3 解决异常2.3.1 文件下载异常2.3.2 解决CUDA版本异常 2.4 编译项目 3. Visual Studio 编译项目4. 项目测试5. 总结 OpenCV是一个基于Apac…

Ubuntu 常用命令之 ln 命令用法介绍

ln命令在Ubuntu系统中用于创建硬链接或符号链接。硬链接是指向文件的物理地址&#xff0c;而符号链接&#xff08;也称为软链接&#xff09;是指向文件路径的引用。 命令格式&#xff1a;ln [选项]... [-T] 目标&#xff08;源文件&#xff09; 链接&#xff08;目标文件&…

【FPGA】Verilog:编码器 | 实现 4 到 2 编码器

0x00 编码器&#xff08;Encoder&#xff09; 编码器与解码器相反。当多台设备向计算机提供输入时&#xff0c;编码器会为每一个输入生成一个与设备相对应的信号&#xff0c;因此有多少比特就有多少输出&#xff0c;以数字形式表示输入的数量。 例如&#xff0c;如果有四个输…

NAS搭建WebDAV服务同步Zotero科研文献

文章目录 一、Zotero安装教程二、群晖NAS WebDAV设置三、Zotero设置四、使用公网地址同步Zotero文献库五、使用永久固定公网地址同步Zotero文献库 Zotero 是一款全能型 文献管理器,可以 存储、管理和引用文献&#xff0c;不但免费&#xff0c;功能还很强大实用。 ​ Zotero 支…

重新认识Word——尾注

重新认识Word——尾注 参考文献格式文献自动生成器插入尾注将数字带上方括号将参考文献中的标号改为非上标 多处引用一篇文献多篇文献被一处引用插入尾注有横线怎么删除&#xff1f;删除尾注 前面我们学习了如何给图片&#xff0c;公式自动添加编号&#xff0c;今天我们来看看毕…

LSTM ——作业

习题6-4 推导LSTM网络中参数的梯度&#xff0c; 并分析其避免梯度消失的效果 习题6-3P 编程实现下图LSTM运行过程 1. 使用Numpy实现LSTM算子 import numpy as np # 创建一个numpy数组x&#xff0c;它是一个4x4的矩阵&#xff0c;包含9个元素 x np.array([[1, 0, 0, 1],[3, …

Unity中URP下的菲涅尔效果实现(URP下的法线和视线向量怎么获取)

文章目录 前言一、实现思路二、实现原理我们可以由下图直观的感受到 N 与 L夹角越小&#xff0c;点积越接近&#xff08;白色&#xff09;1。越趋近90&#xff0c;点积越接近0&#xff08;黑色&#xff09; 三、实现URP下的菲涅尔效果1、我们新建一个Shader&#xff0c;修改为最…

安全密码(字符串)

#include <stdio.h> #include <stdbool.h> #include <string.h> bool is_secure_password(const char* password); int main() {int M;char password[51];// 读取输入中的密码数量 Mscanf("%d", &M);// 处理每个密码for (int i 0; i < M; …

Pytorch:Tensorboard简要学习

目录 一、TensorBoard简介二、TensorBoard的安装与启动Tensorboard的安装Tensorboard的启动 三、TensorBoard的简单使用3.1 SummaryWriter()3.2 add_scalar()和add_scalars()3.3 add_histogram()3.4 模型指标监控 四、总结参考博客 一、TensorBoard简介 TensorBoard 是Google开…

17.Oracle中instr()函数查询字符位置

1、instr()函数的格式 &#xff08;俗称&#xff1a;字符查找函数&#xff09; 格式一&#xff1a;instr( string1, string2 ) // instr(源字符串, 目标字符串) 格式二&#xff1a;instr( string1, string2 [, start_position [, nth_appearance ] ] ) // instr(源字符…

typescript使用解构传参

看下面这个函数 interface Student {id: number;name: string;class: string;sex: string;}function matriculation(student: Student) {//...}我们要调用它,就需要传递一个实现了Student约束的对象进去 interface Student {id: number;name: string;class: string;sex: string…

C语言:将三个数从大到小输出

#include<stdio.h> int main() {int a 0;int b 0;int c 0;printf("请输入abc的值&#xff1a;");scanf_s("%d%d%d", &a, &b, &c);if (b > a){int tmp a;a b;b tmp;}if (c > a){int tmp a;a c;c tmp;}if (b < c){int t…

app分发平台哪个好点?手机app应用内测分发平台支持负载均衡的重要性

随着互联网的快速发展&#xff0c;内测分发平台扮演着越来越重要的角色。而在现代应用程序的开发和运营过程中&#xff0c;负载均衡技术是不可或缺的一部分。内测分发平台支持负载均衡对于提高系统的稳定性、可靠性和性能至关重要。那么什么是负载均衡又有哪些重要性。 图片来源…

在线学习平台,云课堂云教育类网站源码,在线题库+随身携带的刷题神器+视频安装教程

源码介绍 在线题库&#xff1a;由传统的线下学习模式改为在线学习。能够实现学员在线学习、练习、考试 优点&#xff1a;方便、便宜、自我管理、选择性更多 、成人教育 &#xff08;1&#xff09;公考&#xff1a;国考、省考、事业单位… &#xff08;2&#xff09;升学&…

数据结构期末考题之001

算法复杂度就是n&#xff08;0&#xff09;