0基础学python-13:古希腊掌管时间的模块——datetime和time
目录
前言
datetime模块
一、datetime 类
1.创建 datetime 对象
2.获取日期时间的各个部分
3.格式化日期时间为字符串
4.解析字符串为 datetime 对象
二、timedelta 类
1.创建 timedelta 对象
datetime注意事项
time模块
1.获取当前时间戳
2.获取当前时间的结构化表示
3.格式化时间
4.睡眠
time注意事项
前言
在 Python 中,datetime 是处理日期和时间的核心模块,位于标准库中。它提供了用于创建、操作和格式化日期时间的类和函数。Python 的 time 模块是处理时间的另一个重要工具,与 datetime 模块不同,它主要用于处理时间戳(Unix 时间戳)、计时器功能和简单的时间操作。
datetime模块
datetime模块提供了用于操作日期和时间的类和函数,主要用于处理日期时间对象、日期算术运算、日期格式化等。- 主要的类包括
date、time和datetime。例如,datetime.datetime类用于表示具体的日期和时间,包括年、月、日、时、分、秒和微秒。 datetime模块中的函数和类能够处理较复杂的日期和时间操作,例如计算日期差异、时区转换等。
一、datetime 类
datetime 类用于表示特定的日期和时间,包括年、月、日、时、分、秒等信息。它位于 datetime 模块中。
1.创建 datetime 对象
from datetime import datetime # 从datetime模块中导入datetime类# 创建一个当前日期时间的对象
now = datetime.now()
print(now) # 创建一个指定日期时间的对象
specific_date = datetime(2023, 12, 31, 23, 59, 59)
print(specific_date)
输出:
2024-07-16 22:59:50.631692
2023-12-31 23:59:59
2.获取日期时间的各个部分
from datetime import datetime# 获取年、月、日、时、分、秒等部分
now = datetime.now()
year = now.year # 获取年份
month = now.month # 获取月份
day = now.day # 获取天数
hour = now.hour # 获取小时
minute = now.minute # 获取分钟
second = now.second # 获取秒数
microsecond = now.microsecond # 获取毫秒print(year, month, day, hour, minute, second, microsecond)
输出:
2024 7 16 23 1 40 665821
3.格式化日期时间为字符串
from datetime import datetime# 格式化日期时间为字符串
now = datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date,type(formatted_date))
输出:
2024-07-16 23:09:53 <class 'str'>
4.解析字符串为 datetime 对象
from datetime import datetime# 解析字符串为 datetime 对象
date_str = "2023-12-31 23:59:59"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(parsed_date,type(parsed_date))
输出:
2023-12-31 23:59:59 <class 'datetime.datetime'>
二、timedelta 类
timedelta 类用于表示两个日期时间之间的差异,或者一个时间段。它也位于 datetime 模块中。
1.创建 timedelta 对象
from datetime import datetime, timedelta# 创建一个时间差异对象
delta = timedelta(days=5, hours=3, minutes=30)
print(delta) # 5 days, 3:30:00# 使用时间差异来进行日期计算
start_date = datetime(2024, 7, 1)
end_date = start_date + delta
print(end_date) # 2024-07-06 03:30:00
输出:
5 days, 3:30:00
2024-07-06 03:30:00
datetime注意事项
datetime对象是不可变的,一旦创建就不能修改其值。datetime模块中的函数和类提供了强大的日期时间处理功能,能够处理日期时间的格式化、比较、计算等各种操作。
使用 datetime 模块可以方便地在 Python 中进行日期和时间的操作,从简单的获取当前时间到复杂的日期计算和时区处理都有很好的支持。
time模块
time模块提供了与底层操作系统相关的时间功能,主要用于处理时间戳(Unix 时间戳)、计时器功能和简单的时间操作。time模块中的函数允许你获取当前时间、睡眠一段时间、测量时间间隔等简单操作。time模块更专注于底层的时间处理和计时,适合于需要高精度计时或者简单时间操作的场景。
1.获取当前时间戳
时间戳是自 1970 年 1 月 1 日午夜(UTC)以来的秒数。在 Unix 系统中广泛使用。
import time# 获取当前时间戳(秒数) 即 当前时间到1970年1月1日午夜(UTC)的秒数间隔
timestamp = time.time()
print(timestamp)
输出:
1721143169.5846913
2.获取当前时间的结构化表示
time.localtime() 函数返回当前时间的结构化时间,即包含年、月、日等信息的元组。
import time# 获取当前本地时间的结构化表示
local_time = time.localtime()
print(local_time)
输出:
time.struct_time(tm_year=2024, tm_mon=7, tm_mday=16, tm_hour=23, tm_min=22, tm_sec=24, tm_wday=1, tm_yday=198, tm_isdst=0)
3.格式化时间
time.strftime() 方法将结构化时间或时间戳格式化为指定格式的字符串。
import time# 将结构化时间格式化为字符串
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print(formatted_time,type(formatted_time)) # 使用时间戳格式化为字符串
timestamp = time.time()
formatted_timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))
print(formatted_timestamp,type(formatted_timestamp))
输出:
2024-07-16 23:24:48 <class 'str'>
2024-07-16 23:24:48 <class 'str'>
4.睡眠
time.sleep() 函数用于让程序休眠指定的秒数。
import timeprint("Start")
time.sleep(5) # 休眠 5 秒
print("End after 5 seconds")
输出:Start出现到End after 5 seconds出现,中间间隔了5s
Start
End after 5 seconds
此行代码建议自己运行一遍,更能观察到代码的实现。
time注意事项
time模块提供了与底层操作系统相关的时间功能,适合对时间戳、基本时间操作和计时器的需求。time模块返回的时间是相对简单的结构化形式或时间戳,并不提供datetime模块中的日期时间对象和复杂的日期运算功能。- 在需要处理日期时间的复杂场景时,建议优先选择
datetime模块;而在需要处理时间戳、执行简单的时间操作或进行性能测试时,使用time模块更为合适。
通过 time 模块,你可以方便地在 Python 中处理时间戳、进行基本时间操作,并实现简单的计时功能。
相关文章:
0基础学python-13:古希腊掌管时间的模块——datetime和time
目录 前言 datetime模块 一、datetime 类 1.创建 datetime 对象 2.获取日期时间的各个部分 3.格式化日期时间为字符串 4.解析字符串为 datetime 对象 二、timedelta 类 1.创建 timedelta 对象 datetime注意事项 time模块 1.获取当前时间戳 2.获取当前时间的结构化表…...
棒球特长生升学具有其独特的优势和劣势·棒球6号位
棒球特长生升学具有其独特的优势和劣势,以下是对这两方面的详细分析: 获得更好的教育资源: 棒球特长生有机会通过棒球特长招生计划进入更好的学校。这些学校往往拥有更优质的教育资源,包括师资力量、教学设施、课程设置等&#…...
搜维尔科技:Xsens DOT 可穿戴传感器介绍及示例应用演示
Xsens DOT可穿戴传感器介绍及示例应用演示 搜维尔科技:Xsens DOT 可穿戴传感器介绍及示例应用演示...
数据分析案例-2024 年热门动漫数据集可视化分析
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
C#小结:未能找到类型或命名空间名“xxx”(是否缺少 using 指令或程序集引用?)
方案一:移除类库这些失效的引用,下载对应版本的dll(如有则不需要重复下载),重新添加引用 方案二:类库右键属性-调整目标框架版本(一般是降低版本) 方案三:调整类库编译顺…...
STM32智能无人机控制系统教程
目录 引言环境准备智能无人机控制系统基础代码实现:实现智能无人机控制系统 4.1 数据采集模块 4.2 数据处理与控制算法 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:无人机管理与优化问题解决方案与优化收尾与总结 1. 引言 智能无人机控…...
从 QWebEnginePage 打印文档
QWebEnginePage 是 Qt WebEngine 模块中的一个类,它提供了用于处理网页内容的接口。如果你想要打印 QWebEnginePage 中的内容,你可以使用 QPrinter 和 QPrintDialog 类来实现。 项目配置了 Qt WebEngine 模块,并且在你的.pro文件中包含了相应…...
初识Docker及管理Docker
Docker部署 初识DockerDocker是什么Docker的核心概念镜像容器仓库 容器优点容器在内核中支持2种重要技术:Docker容器与虚拟机的区别 安装Docker源码安装yum安装检查Docker Docker 镜像操作配置镜像加速器(阿里系)搜索镜像获取镜像查看镜像信息…...
【学术会议征稿】2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)
2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024) 2024 3rd International Conference on Informatics,Networking and Computing (ICINC 2024) 2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)将于2024年10月25-27日于中国郑州召…...
在golang中Sprintf和Printf 的区别
最近一直在学习golang这个编程语言,我们这里做一个笔记就是 Sprintf和Printf 的区别 fmt.Sprintf 根据格式化参数生成格式化的字符串并返回该字符串。 fmt.Printf 根据格式化参数生成格式化的字符串并写入标准输出。由上面就可以知道,fmt.Sprintf返回的…...
策略模式原理与C++实现
定义 定义一些列算法,把他们一个个封装起来,并且使他们可以相互替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展、子类化)。 C实现 在不考虑策略模式的情况…...
打包一个自己的Vivado IP核
写在前面 模块复用是逻辑设计人员必须掌握的一个基本功,通过将成熟模块打包成IP核,可实现重复利用,避免重复造轮子,大幅提高我们的开发效率。 接下来将之前设计的串口接收模块和串口发送模块打包成IP核,再分别调用…...
《昇思25天学习打卡营第05天|qingyun201003》
日期 心得 通过本节课的学习,学习到了通过网络获取数据集,处理数据集模型。数据模型层数据变换,模型参数解析和其对应代码中的API进行解析。 昇思MindSpore 基础入门学习 网络构建 (AI 代码解析) 网络构建 神经网络模型是由神经网络层和T…...
【Leetcode】二十一、前缀树 + 词典中最长的单词
文章目录 1、背景2、前缀树Trie3、leetcode208:实现Trie4、leetcode720:词典中最长的单词 1、背景 如上,以浏览器搜索时的自动匹配为例: 如果把所有搜索关键字放一个数组里,则:插入、搜索一个词条时&#x…...
秋招Java后端开发冲刺——Mybatis使用总结
一、基本知识 1. 介绍 MyBatis 是 Apache 的一个开源项目,它封装了 JDBC,使开发者只需要关注 SQL 语句本身,而不需要再进行繁琐的 JDBC 编码。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java POJO(Plain …...
怎么压缩视频文件?简单的压缩视频方法分享
视频已成为我们日常生活中不可或缺的一部分。但随着视频质量的提高,文件大小也逐渐成为我们分享的阻碍。如何有效压缩视频文件,使其既能保持清晰,又能轻松分享?今天,给大家分享五种实用的视频压缩方法,快来…...
【Oracle】Oracle语法之递归查询
目录 递归查询使用场景备注 语法相关属性解释 案例基本使用升级版-带上递归查询的属性 总结: 递归查询 Oracle的递归查询是指在一个查询语句中使用自引用的方式进行循环迭代查询。它可以用于处理具有层次结构的数据,如组织架构、产品类别等。递归查询通…...
【教程】Vue2中使用svg矢量图
1.npm导包 npm i svg-sprite-loader --save2.创建目录放入svg文件,创建SvgIcon.js 3.SvgIcon.js const req require.context(./svg, false, /\.svg$/) const requireAll requireContext > requireContext.keys().map(requireContext) requireAll(req)4.vue.c…...
简约唯美的404HTML源码
源码介绍 简约唯美的404HTML源码,很适合做网站错误页,将下面的源码放到一个空白的html里面,然后上传到服务器里面即可使用 效果预览 完整源码 <!DOCTYPE html> <html><head><meta charset="utf-8"><title>404 Error Example<…...
PDF 转图片并插入到 EXCEL 再转PDF
pom.xml 引用 <dependency><groupId>com.aspose</groupId><artifactId>aspose-cells</artifactId><version>21.11</version></dependency><dependency><groupId>com.aspose</groupId><artifactId>as…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
