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

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 模块提供了用于操作日期和时间的类和函数,主要用于处理日期时间对象、日期算术运算、日期格式化等。
  • 主要的类包括 datetime 和 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号位

棒球特长生升学具有其独特的优势和劣势&#xff0c;以下是对这两方面的详细分析&#xff1a; 获得更好的教育资源&#xff1a; 棒球特长生有机会通过棒球特长招生计划进入更好的学校。这些学校往往拥有更优质的教育资源&#xff0c;包括师资力量、教学设施、课程设置等&#…...

搜维尔科技:Xsens DOT 可穿戴传感器介绍及示例应用演示

Xsens DOT可穿戴传感器介绍及示例应用演示 搜维尔科技&#xff1a;Xsens DOT 可穿戴传感器介绍及示例应用演示...

数据分析案例-2024 年热门动漫数据集可视化分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…...

C#小结:未能找到类型或命名空间名“xxx”(是否缺少 using 指令或程序集引用?)

方案一&#xff1a;移除类库这些失效的引用&#xff0c;下载对应版本的dll&#xff08;如有则不需要重复下载&#xff09;&#xff0c;重新添加引用 方案二&#xff1a;类库右键属性-调整目标框架版本&#xff08;一般是降低版本&#xff09; 方案三&#xff1a;调整类库编译顺…...

STM32智能无人机控制系统教程

目录 引言环境准备智能无人机控制系统基础代码实现&#xff1a;实现智能无人机控制系统 4.1 数据采集模块 4.2 数据处理与控制算法 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;无人机管理与优化问题解决方案与优化收尾与总结 1. 引言 智能无人机控…...

从 QWebEnginePage 打印文档

QWebEnginePage 是 Qt WebEngine 模块中的一个类&#xff0c;它提供了用于处理网页内容的接口。如果你想要打印 QWebEnginePage 中的内容&#xff0c;你可以使用 QPrinter 和 QPrintDialog 类来实现。 项目配置了 Qt WebEngine 模块&#xff0c;并且在你的.pro文件中包含了相应…...

初识Docker及管理Docker

Docker部署 初识DockerDocker是什么Docker的核心概念镜像容器仓库 容器优点容器在内核中支持2种重要技术&#xff1a;Docker容器与虚拟机的区别 安装Docker源码安装yum安装检查Docker Docker 镜像操作配置镜像加速器&#xff08;阿里系&#xff09;搜索镜像获取镜像查看镜像信息…...

【学术会议征稿】2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)

2024年第三届信息学&#xff0c;网络与计算技术国际学术会议(ICINC2024) 2024 3rd International Conference on Informatics,Networking and Computing (ICINC 2024) 2024年第三届信息学&#xff0c;网络与计算技术国际学术会议(ICINC2024)将于2024年10月25-27日于中国郑州召…...

在golang中Sprintf和Printf 的区别

最近一直在学习golang这个编程语言&#xff0c;我们这里做一个笔记就是 Sprintf和Printf 的区别 fmt.Sprintf 根据格式化参数生成格式化的字符串并返回该字符串。 fmt.Printf 根据格式化参数生成格式化的字符串并写入标准输出。由上面就可以知道&#xff0c;fmt.Sprintf返回的…...

策略模式原理与C++实现

定义 定义一些列算法&#xff0c;把他们一个个封装起来&#xff0c;并且使他们可以相互替换&#xff08;变化&#xff09;。该模式使得算法可独立于使用它的客户程序&#xff08;稳定&#xff09;而变化&#xff08;扩展、子类化&#xff09;。 C实现 在不考虑策略模式的情况…...

打包一个自己的Vivado IP核

写在前面 模块复用是逻辑设计人员必须掌握的一个基本功&#xff0c;通过将成熟模块打包成IP核&#xff0c;可实现重复利用&#xff0c;避免重复造轮子&#xff0c;大幅提高我们的开发效率。 接下来将之前设计的串口接收模块和串口发送模块打包成IP核&#xff0c;再分别调用…...

《昇思25天学习打卡营第05天|qingyun201003》

日期 心得 通过本节课的学习&#xff0c;学习到了通过网络获取数据集&#xff0c;处理数据集模型。数据模型层数据变换&#xff0c;模型参数解析和其对应代码中的API进行解析。 昇思MindSpore 基础入门学习 网络构建 (AI 代码解析) 网络构建 神经网络模型是由神经网络层和T…...

【Leetcode】二十一、前缀树 + 词典中最长的单词

文章目录 1、背景2、前缀树Trie3、leetcode208&#xff1a;实现Trie4、leetcode720&#xff1a;词典中最长的单词 1、背景 如上&#xff0c;以浏览器搜索时的自动匹配为例&#xff1a; 如果把所有搜索关键字放一个数组里&#xff0c;则&#xff1a;插入、搜索一个词条时&#x…...

秋招Java后端开发冲刺——Mybatis使用总结

一、基本知识 1. 介绍 MyBatis 是 Apache 的一个开源项目&#xff0c;它封装了 JDBC&#xff0c;使开发者只需要关注 SQL 语句本身&#xff0c;而不需要再进行繁琐的 JDBC 编码。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java POJO&#xff08;Plain …...

怎么压缩视频文件?简单的压缩视频方法分享

视频已成为我们日常生活中不可或缺的一部分。但随着视频质量的提高&#xff0c;文件大小也逐渐成为我们分享的阻碍。如何有效压缩视频文件&#xff0c;使其既能保持清晰&#xff0c;又能轻松分享&#xff1f;今天&#xff0c;给大家分享五种实用的视频压缩方法&#xff0c;快来…...

【Oracle】Oracle语法之递归查询

目录 递归查询使用场景备注 语法相关属性解释 案例基本使用升级版-带上递归查询的属性 总结&#xff1a; 递归查询 Oracle的递归查询是指在一个查询语句中使用自引用的方式进行循环迭代查询。它可以用于处理具有层次结构的数据&#xff0c;如组织架构、产品类别等。递归查询通…...

【教程】Vue2中使用svg矢量图

1.npm导包 npm i svg-sprite-loader --save2.创建目录放入svg文件&#xff0c;创建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…...

动手实验:在QEMU上模拟调试ATF安全启动全流程(含常见错误排查)

在QEMU虚拟环境中实战调试ATF安全启动全流程指南 1. 实验环境搭建与工具链配置 构建ATF调试环境需要精心准备工具链和依赖组件。我们推荐使用Ubuntu 20.04 LTS作为基础系统&#xff0c;这是目前对ARM虚拟化支持最完善的Linux发行版之一。以下是关键组件的版本要求&#xff1a; …...

智读致用|《谷歌亚马逊如何做产品》6|赢在数据驱动:抓住核心指标,就能让产品“开口说话”

核心问题&#xff1a;产品发布后&#xff0c;怎么判断它到底成没成功&#xff1f;团队争论需求优先级时&#xff0c;凭什么说“这个比那个重要”&#xff1f; 上一篇文章解决了“产品能不能用”&#xff0c;现在要回答更根本的问题&#xff1a;它值不值得继续投入&#xff1f; …...

暗黑破坏神2存档修改器终极指南:告别重复刷装备,5分钟打造完美角色!

暗黑破坏神2存档修改器终极指南&#xff1a;告别重复刷装备&#xff0c;5分钟打造完美角色&#xff01; 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否厌倦了在暗黑破坏神2中反复刷装备&am…...

45k Star 的 AI 编程神器:Claude Code / Codex / Cursor Token 一律打 2 折

&#x1f449; 这是一个或许对你有用的社群&#x1f431; 一对一交流/面试小册/简历优化/求职解惑&#xff0c;欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料&#xff1a; 《项目实战&#xff08;视频&#xff09;》&#xff1a;从书中学&#xff0c;往事中…...

Visual Studio Uninstaller:深度系统清理架构与BURN引擎逆向工程实践

Visual Studio Uninstaller&#xff1a;深度系统清理架构与BURN引擎逆向工程实践 【免费下载链接】VisualStudioUninstaller Visual Studio Uninstallation sometimes can be unreliable and often leave out a lot of unwanted artifacts. Visual Studio Uninstaller is desig…...

在Node.js服务中集成Taotoken实现多模型智能对话

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Node.js服务中集成Taotoken实现多模型智能对话 应用场景类&#xff0c;描述一个Node.js后端服务需要集成大模型能力的场景&#…...

如何高效使用智能自动化工具:免费开源解决方案完全指南

如何高效使用智能自动化工具&#xff1a;免费开源解决方案完全指南 【免费下载链接】openrpa Free Open Source Enterprise Grade RPA 项目地址: https://gitcode.com/gh_mirrors/op/openrpa 想象一下&#xff0c;每天重复点击鼠标、填写表单、复制粘贴数据的工作让你感…...

2026年获客成本飙升?GEO优化让线索成本降低60%

2026年获客成本飙升&#xff1f;GEO优化让线索成本降低60% 摘要 &#xff1a;传统获客方式成本越来越高&#xff0c;百度竞价按点击付费&#xff0c;展会一次花费数万&#xff0c;线索成本难以下降。本文介绍一种新的获客方式——GEO优化&#xff0c;通过AI搜索优化直接触达目标…...

wangEditor公式插件kityformula的‘幽灵注册’与按钮刷新:两个容易被忽略的Vue组件级问题

wangEditor公式插件kityformula的‘幽灵注册’与按钮刷新&#xff1a;两个容易被忽略的Vue组件级问题 在Vue3项目中集成wangEditor富文本编辑器并引入kityformula公式插件时&#xff0c;开发者往往会遇到一些看似诡异的问题。这些问题表面上是功能异常&#xff0c;实则隐藏着对…...

深度解析猫抓Cat-Catch:从浏览器资源嗅探到流媒体处理的技术架构演进

深度解析猫抓Cat-Catch&#xff1a;从浏览器资源嗅探到流媒体处理的技术架构演进 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓Cat-Catch作为…...