当前位置: 首页 > news >正文

Python基础教程(二十四):日期和时间

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快!
💝💝💝如有需要请大家订阅我的专栏【Python系列】哟!我会定期更新相关系列的文章
💝💝💝关注!关注!!请关注!!!请大家关注下博主,您的支持是我不断创作的最大动力!!!

文章目录

    • 引言
    • 一、基础概念与库介绍
      • 1.1 datetime 模块
      • 1.2 time 模块
    • 二、基础操作
      • 2.1 获取当前日期和时间
      • 2.2 创建日期和时间对象
      • 2.3 时间格式化
      • 2.4 时间间隔计算
    • 三、案例展示
    • 四、进阶技巧:时区处理
    • 五、总结
    • 结束语

引言

在编程世界里,处理日期和时间是一项常见的任务,尤其是在涉及数据分析、日志记录、定时任务等领域。Python,作为一门功能强大且易学易用的编程语言,提供了丰富的库和方法来帮助开发者高效地处理日期和时间相关的问题。本文将深入探讨Python中的日期和时间处理,包括基础概念、常用库的使用以及实战案例。

一、基础概念与库介绍

Python中主要涉及到两个重要的库:datetimetime。其中,datetime 提供了更高级别的日期和时间操作接口,而 time 则提供了与系统时间相关的低级别接口。

1.1 datetime 模块

datetime 模块包含了许多类,如 datetime, date, time, 和 timedelta,它们分别用于处理日期和时间的不同方面。

  • datetime: 结合日期和时间的完整信息。
  • date: 只包含日期信息。
  • time: 只包含时间信息。
  • timedelta: 表示两个日期或时间之间的差异。

1.2 time 模块

time 模块提供了许多与时间相关的函数,如 time(), sleep(), strftime(), 和 strptime() 等,这些函数可以用来获取当前时间戳、暂停程序执行、格式化时间等。

二、基础操作

2.1 获取当前日期和时间

from datetime import datetime# 获取当前日期和时间
now = datetime.now()
print(now)  # 输出类似于:2023-10-12 14:29:13.123456

2.2 创建日期和时间对象

from datetime import datetime# 创建指定日期和时间的对象
dt = datetime(2023, 10, 12, 15, 30)
print(dt)  # 输出:2023-10-12 15:30:00

2.3 时间格式化

from datetime import datetime# 当前日期和时间
now = datetime.now()# 格式化输出
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted)  # 输出:2023-10-12 14:29:13

2.4 时间间隔计算

from datetime import datetime, timedelta# 计算明天的日期
today = datetime.now()
tomorrow = today + timedelta(days=1)
print(tomorrow)

三、案例展示

假设你有一份日志文件,里面记录了用户访问网站的时间戳。你需要编写一个脚本来找出一天中最繁忙的时段。

from datetime import datetime
import relog_file = open('access.log', 'r')
log_lines = log_file.readlines()# 存储每小时的访问次数
hourly_visits = {}for line in log_lines:timestamp_str = re.search(r'\[(.*?)\]', line).group(1)timestamp = datetime.strptime(timestamp_str, '%d/%b/%Y:%H:%M:%S')hour = timestamp.hourif hour in hourly_visits:hourly_visits[hour] += 1else:hourly_visits[hour] = 1# 找出访问最多的小时
max_hour = max(hourly_visits, key=hourly_visits.get)
print(f"The busiest hour was {max_hour}:00 with {hourly_visits[max_hour]} visits.")

四、进阶技巧:时区处理

在处理跨时区的数据时,pytz 库是一个非常有用的工具,它可以帮你正确处理不同时区的时间转换。

from datetime import datetime
import pytz# 在UTC时区创建一个时间对象
utc_time = datetime.now(pytz.utc)# 转换到上海时区
shanghai_tz = pytz.timezone('Asia/Shanghai')
shanghai_time = utc_time.astimezone(shanghai_tz)print(shanghai_time)

五、总结

Python中的日期和时间处理虽然看似简单,但其背后隐藏着丰富的功能和细节。通过熟练掌握 datetimetime 模块的使用,以及了解高级库如 pytz 的能力,你可以轻松应对各种与日期和时间相关的编程挑战。无论是简单的日期格式化,还是复杂的时区转换,Python都能提供强大的支持,让时间成为你程序中的得力助手。


结束语

喜欢博主的同学,请给博主一丢丢打赏吧↓↓↓您的支持是我不断创作的最大动力哟!感谢您的支持哦😘😘😘
打赏下吧

💝💝💝如有需要请大家订阅我的专栏【Python系列】哟!我会定期更新相关系列的文章
💝💝💝关注!关注!!请关注!!!请大家关注下博主,您的支持是我不断创作的最大动力!!!

python相关文章索引文章链接
Python基础语法(一):标识符与保留字部分Python基础语法(一):标识符与保留字部分
Python基础语法(二):数据类型Python基础语法(二):数据类型
Python基础语法(三):运算符Python基础语法(三):运算符
Python基础语法(四):条件控制Python基础语法(四):条件控制
Python基础语法(五):循环语句Python基础语法(五):循环语句
Python基础语法(六):推导式编程Python基础语法(六):推导式编程
Python基础教程(七):函数编程-从基础到进阶Python基础教程(七):函数编程-从基础到进阶
Python基础教程(八):迭代器与生成器编程Python基础教程(八):迭代器与生成器编程
Python基础教程(九):Lambda 函数Python基础教程(九):Lambda 函数
Python基础教程(十):装饰器Python基础教程(十):装饰器
Python基础教程(十一):数据结构汇总梳理Python基础教程(十一):数据结构汇总梳理
Python基础教程(十二):模块Python基础教程(十二):模块
Python基础教程(十三):file文件及相关的函数Python基础教程(十三):file文件及相关的函数
Python基础教程(十四):OS 文件/目录方法Python基础教程(十四):OS 文件/目录方法
Python基础教程(十五):面向对象编程Python基础教程(十五):面向对象编程
Python基础教程(十六):正则表达式Python基础教程(十六):正则表达式
Python基础教程(十七):CGI编程Python基础教程(十七):CGI编程
Python基础教程(十八):MySQL - mysql-connector 驱动Python基础教程(十八):MySQL - mysql-connector 驱动
Python基础教程(十九):网络编程Python基础教程(十九):网络编程
Python基础教程(二十):SMTP发送邮件Python基础教程(二十):SMTP发送邮件
Python基础教程(二十一):多线程Python基础教程(二十一):多线程
Python基础教程(二十二):XML解析Python基础教程(二十二):XML解析
Python基础教程(二十三):JSON数据解析Python基础教程(二十三):JSON数据解析

❤️❤️❤️觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

相关文章:

Python基础教程(二十四):日期和时间

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…...

java面向对象(上)

一.面向对象与面向过程 1.面向过程 面向过程(procedure Oriented Programming),简称POP,主要思想就是将问题分解成一个个步骤去解决,把这个步骤称为函数. 典型语言:C语言 优点:可以大大简化代码 缺点:当代码量过大时,不方便维护 2.面向对象 面向对象(Object Oriented Pr…...

揭示SOCKS5代理服务器列表的重要性

在复杂的网络安全领域中,SOCKS5代理在保护在线活动方面发挥着关键作用。本文深入探讨了SOCKS5代理服务器列表的细节,探讨了它们的应用、优势以及在增强在线安全和隐私方面不可或缺的功能。 一、理解SOCKS5代理服务器列表 作为在客户端和服务器之间进行通…...

机器学习python实践——关于ward聚类分层算法的一些个人心得

最近在利用python跟着参考书进行机器学习相关实践,相关案例用到了ward算法,但是我理论部分用的是周志华老师的《西瓜书》,书上没有写关于ward的相关介绍,所以自己网上查了一堆资料,都很难说清楚ward算法,幸…...

从零制作一个docker的镜像

近期docker的镜像仓库不好用了,很多国内的源也无法使用了,所有今天给大家分享一下怎么从零制作一个CentOS镜像。 准备CentOS7最小环境 mkdir /centos7.9-root# 在该目录准备centos的最小环境 sudo yum --installroot/centos7.9-root --releasever7 ins…...

eclipse 老的s2sh(Struts2+Spring+Hibernate) 项目 用import导入直接导致死机(CPU100%)的解决

1、下载Apache Tomcat - Apache Tomcat 8 Software Downloads 图中是8.5.100的版本,下面的设置用的是另一个版本的,其实是一样。 2、先将Server配好,然后再进行导入操作。 2、选择jdk 当然,这里也可以直接“Download and instal…...

《米小圈动画汉字》汉字教育动画化:传统与创新的完美融合!

汉字,作为中华文化的瑰宝,承载着千百年来中华民族的智慧和思想。每一个汉字不仅仅是一个符号,更是一段历史的见证,一种文化的传承。在当今全球化的背景下,汉字教育面临着新的挑战与机遇。在这种背景下,如何…...

【LeetCode最详尽解答】11-盛最多水的容器 Container-With-Most-Water

欢迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有问题可以随时与我交流, 谢谢大家! 链接: 11-盛最多水的容器 直觉 这个问题可以通过可视化图表来理解和解决。 通过图形化这个…...

redis 缓存jwt令牌设置更新时间 BUG修复

大家好,今天我又又又来了,hhhhh。 上文中 我们永redis缓存了token 但是我们发现了 一个bug ,redis中缓存的token 是单用户才能实现的。 就是 我 redis中存储的键 名 为token 值 是jwt令牌 ,但是如果 用户a 登录 之后 创建一个…...

nginx精准禁止特定国家或者地区IP访问

1、安装依赖 dnf -y install gcc-c libtool gd-devel pcre pcre-devel openssl openssl-devel zlib zlib-devel libmaxminddb-devel pcre-devel zlib-devel gcc gcc-c make git2、获取NGINX安装包并安装 wget https://nginx.org/download/nginx-1.26.1.tar.gz git clone http…...

单片机课设-基于单片机的电子时钟设计(仿真+代码+报告)

基于单片机的电子时钟设计 前言一、课设任务是什么?二、系统总体方案硬件设计2.1 系统硬件总体设计2.2 键盘电路设计2.3 DS1302实时时钟芯片电路设计2.4 复位电路2.5 LCD电路设计 三、软件设计3.1 主程序流程图3.2 主要程序设计代码3.3 修改时间函数3.4 扫描键盘函数 四、仿真…...

.net 6 api 修改URL为小写

我们创建的api项目,url是[Route(“[controller]”)],类似这样子定义的。我们的controller命名是大写字母开头的,显示在url很明显不是很好看(url不区分大小写)。转换方式: var builder WebApplication.Crea…...

Windows电脑部署Jellyfin服务端并进行远程访问配置详细教程

文章目录 前言1. Jellyfin服务网站搭建1.1 Jellyfin下载和安装1.2 Jellyfin网页测试 2.本地网页发布2.1 cpolar的安装和注册2.2 Cpolar云端设置2.3 Cpolar本地设置 3.公网访问测试4. 结语 前言 本文主要分享如何使用Windows电脑本地部署Jellyfin影音服务并结合cpolar内网穿透工…...

rsync同步目录脚本

假设有两台服务器的示例 IP 地址为: Server A: 192.168.1.100Server B: 192.168.1.200 现在来解释如何使用这个脚本进行服务器之间文件夹内容的同步,保留路径和服务器信息的抽象化。 1. 脚本文件位置和权限 假设脚本文件位于 /root/script.sh&#x…...

LeetCode 6. Z 字形变换

LeetCode 6. Z 字形变换 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下: 之后,你的输出需要从左往右逐行读取,产生…...

RTC实时时钟

一、Unix时间戳 1、Unix 时间戳 (1)Unix 时间戳(Unix Timestamp)定义为从UTC/GMT的1970年1月1日0时0分0秒开始所经过的秒数,不考虑闰秒 (2)时间戳存储在一个秒计数器中,秒计数器为…...

WHAT - React 学习系列(一)

官方文档 If you have a lot of HTML to port to JSX, you can use an online converter. You’ll get two things from useState: the current state (count), and the function that lets you update it (setCount). To “remember” things, components use state.To mak…...

代理模式(静态代理/动态代理)

代理模式(Proxy Pattern) 一 定义 为其他对象提供一种代理,以控制对这个对象的访问。 代理对象在客户端和目标对象之间起到了中介作用,起到保护或增强目标对象的作用。 属于结构型设计模式。 代理模式分为静态代理和动态代理。…...

Word2Vec基本实践

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…...

IIS配置網站登錄驗證,禁止匿名登陸

需要維護一個以前的舊系統,這個系統在內網運行,需要抓取電腦的登陸賬號,作為權限管理的一部分因此需要在IIS配置一下...

抖音矩阵系统搭建,AI剪辑短视频,一键管理矩阵账号

目录 前言: 一、抖音矩阵系统有哪些功能? 1.AI智能文案 2.多平台账号授权 3.多种剪辑模式 4. 矩阵一键发布,智能发布 5.抖音爆店码功能 6.私信实时互动 7.去水印及外链 二、抖音矩阵系统可以解决哪些问题? 总结&#xff…...

山东大学软件学院创新项目实训开发日志——收尾篇

山东大学软件学院创新项目实训开发日志——收尾篇 项目名称:ModuFusion Visionary:实现跨模态文本与视觉的相关推荐 -------项目目标: 本项目旨在开发一款跨模态交互式应用,用户可以上传图片或视频,并使用文本、点、…...

vue2.7支持组合式API,但是对应的vue-router3并不支持useRoute、useRouter。

最近在做一个项目,因为目标用户浏览器版本并不确定,可能会有较旧版本,于是采用vue2.7而不是vue3,最近一年多使用vue3开发的项目都碰到了很多chrome 63-73版本,而对应UI 库 element plus又问题很多。 为了不碰到这些问…...

摊位纠纷演变肢体冲突,倒赔了500:残疾夫妇与摊主谁之过?

在一个小商贩密集的街区,一起由摊位纠纷引发的肢体冲突事件在当地社区和网络上引起了热议。涉事双方为一名摊主和一对残疾夫妇,他们的争执源自对一个摊位的使用权。本是口头上的争吵,却由于双方情绪激动,迅速升级为肢体冲突&#…...

深入理解和实现Windows进程间通信(消息队列)

常见的进程间通信方法 常见的进程间通信方法有: 管道(Pipe)消息队列共享内存信号量套接字 下面,我们将详细介绍消息队列的原理以及具体实现。 什么是消息队列? Windows操作系统使用消息机制来促进应用程序与操作系…...

Web网页前端教程免费:引领您踏入编程的奇幻世界

Web网页前端教程免费:引领您踏入编程的奇幻世界 在当今数字化时代,Web前端技术已成为互联网发展的重要驱动力。想要踏入这一领域,掌握相关技能,却苦于找不到合适的教程?别担心,本文将为您带来一份免费的We…...

北斗短报文终端在应急消防通信场景中的应用

在应对自然灾害和紧急情况时,北斗三号短报文终端以其全球覆盖、实时通信和精准定位的能力,成为应急消防通信的得力助手。它不仅能够在地面通信中断的极端条件下保障信息传递的畅通,还能提供精准的位置信息,为救援行动提供有力支持…...

Java跳动爱心代码

1.计算爱心曲线上的点的公式 计算爱心曲线上的点的公式通常基于参数方程。以下是两种常见的参数方程表示方法,用于绘制爱心曲线: 1.1基于 (x, y) 坐标的参数方程 x a * (2 * cos(θ) - sin(θ))^3 y a * (2 * sin(θ) - cos(θ))^3 其中&#xff…...

Swift Combine — Operators(常用Filtering类操作符介绍)

目录 filter(_: )tryFilter(_: )compactMap(_: )tryCompactMap(_: )removeDuplicates()first(where:)last(where:) Combine中对 Publisher的值进行操作的方法称为 Operator(操作符)。 Combine中的 Operator通常会生成一个 Publisher,该 …...

Windows11+CUDA12.0+RTX4090如何配置安装Tensorflow2-GPU环境?

1 引言 电脑配置 Windows 11 cuda 12.0 RTX4090 由于tensorflow2官网已经不支持cuda11以上的版本了,配置cuda和tensorflow可以通过以下步骤配置实现。 2 步骤 (1)创建conda环境并安装cuda和cudnn,以及安装tensorflow2.10 con…...

至设计网站/旅游景区网络营销案例

apache-tomcat-x.x.xx下的conf中的logging.properties中使用CtrlF替换所有的UTF-8变为GBK,即可解决乱码问题...

龙岩建设局招聘网站/正规网站优化推广

TLS 9.2C 这个题目我觉得我做的\(50\)分做法比\(100\)分的\(SBDP\)更具有价值. 因为这个\(DP\)真的很简单. 令\(f_{i,j}\)表示以\((i,j)\)为右下角的最大正方形的边长.则有转移方程:\[f_{i,j} min ( f_{i-1,j-1} , f_{i-1,j} , f_{i,j-1} ) 1\] 最后的答案就在所有的\(f_{i,j…...

网站建设公司浙江/软文写作平台发稿

逆透视转换将来自单个记录中多个列的值扩展为单个列中具有同样值的多个记录,使得非规范的数据集成为较规范的版本。例如,每个客户在列出客户名的数据集中各占一行,在该行的各列中显示购买的产品和数量。逆透视转换将数据集规范之后&#xff0…...

wordpress 双栏主题/满十八岁可以申请abc认证吗

javahome路径写成死路径;classpath路径写死。...

网站下载到本地/开发一个小程序一般需要多少钱呢

(查询 Google 所支持的所有国家的代码,并以 zh-cn 简体中文显示)1.邮政编码法:(支持美国地区) http://www.google.com/ig/api?hlzh-cn&weather94043   (94043 为 山景城, 美国加州 的邮政编码) 2.经纬度坐标作法: http://www.google.c…...

seo整站如何优化/零基础seo入门教学

5902. 检查句子中的数字是否递增 句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格。每个 token 要么是一个由数字 0-9 组成的不含前导零的 正整数 ,要么是一个由小写英文字母组成的 单词 。 示例&…...