python-datetime模块时间戳常用方法汇总
文章目录
- datetime模块常用方法
- 1、导入模块
- 2、获取当前日期和时间
- 3、获取当前日期
- 4、创建特定日期或时间
- 5、日期和时间的运算
- 6、使用timedelta运算日期时间
- 创建 `timedelta` 对象
- `timedelta` 的加减运算
- `timedelta` 的属性
- `timedelta` 的比较
- 示例代码
- 格式化日期和时间
- 获取日期和时间的各个部分
- 时区处理
- 日期和时间的比较
- 常用的日期和时间格式化符号
- 示例代码
- 7、datatime需要输出今天的日期,时分秒是0
- 输出结果
- 解释
- Python处理时间戳和时间转换
- 1、导入模块
- 2、获取当前时间戳
- 3、时间戳转换为日期和时间
- 使用 `time` 模块
- 使用 `datetime` 模块
- 4、日期和时间转换为时间戳
- 使用 `time` 模块
- 使用 `datetime` 模块
- 5、处理带时区的时间戳
- 6、示例代码
datetime模块常用方法
datetime
模块是 Python 标准库中的一个模块,提供了处理日期和时间的类和方法。以下是一些常用的 datetime
操作和用法:
1、导入模块
import datetime
2、获取当前日期和时间
now = datetime.datetime.now()
print("当前日期和时间:", now)
3、获取当前日期
today = datetime.date.today()
print("当前日期:", today)
4、创建特定日期或时间
# 创建一个特定的日期
specific_date = datetime.date(2023, 6, 4)
print("特定日期:", specific_date)# 创建一个特定的时间
specific_time = datetime.time(14, 30, 15)
print("特定时间:", specific_time)# 创建一个特定的日期和时间
specific_datetime = datetime.datetime(2023, 6, 4, 14, 30, 15)
print("特定日期和时间:", specific_datetime)
5、日期和时间的运算
# 日期加减
tomorrow = today + datetime.timedelta(days=1)
print("明天:", tomorrow)yesterday = today - datetime.timedelta(days=1)
print("昨天:", yesterday)# 时间差
time_diff = datetime.datetime(2024, 6, 4) - datetime.datetime(2023, 6, 4)
print("时间差:", time_diff)
6、使用timedelta运算日期时间
datetime.timedelta
是 Python datetime
模块中的一个类,用于表示两个日期或时间之间的差值。它可以用于日期和时间的加减运算。以下是一些常见的 timedelta
用法和示例:
import datetime
from datetime import timedelta
创建 timedelta
对象
timedelta
可以通过指定天、秒、微秒、毫秒、分钟、小时和周来创建:
# 创建一个表示10天的 timedelta 对象
delta_days = datetime.timedelta(days=10)
print("10天的 timedelta:", delta_days)# 创建一个表示2小时30分钟的 timedelta 对象
delta_hours_minutes = datetime.timedelta(hours=2, minutes=30)
print("2小时30分钟的 timedelta:", delta_hours_minutes)# 创建一个表示1周的 timedelta 对象
delta_weeks = datetime.timedelta(weeks=1)
print("1周的 timedelta:", delta_weeks)
timedelta
的加减运算
# 获取当前日期和时间
now = datetime.datetime.now()
print("当前日期和时间:", now)# 日期加减 timedelta
future_date = now + delta_days
print("10天后的日期和时间:", future_date)past_date = now - delta_days
print("10天前的日期和时间:", past_date)
timedelta
的属性
timedelta
对象有一些属性可以访问其内部的天、秒和微秒:
delta = datetime.timedelta(days=5, hours=3, minutes=30, seconds=15)print("天数:", delta.days)
print("总秒数:", delta.total_seconds())
print("秒数(不包括天):", delta.seconds)
print("微秒数:", delta.microseconds)
timedelta
的比较
timedelta
对象可以进行比较运算:
delta1 = datetime.timedelta(days=5)
delta2 = datetime.timedelta(days=10)print("delta1 < delta2:", delta1 < delta2)
print("delta1 == delta2:", delta1 == delta2)
print("delta1 > delta2:", delta1 > delta2)
示例代码
import datetime
from datetime import timedelta# 创建 timedelta 对象
delta_days = datetime.timedelta(days=10)
delta_hours_minutes = datetime.timedelta(hours=2, minutes=30)
delta_weeks = datetime.timedelta(weeks=1)# 当前日期和时间
now = datetime.datetime.now()
print("当前日期和时间:", now)# 日期加减 timedelta
future_date = now + delta_days
print("10天后的日期和时间:", future_date)past_date = now - delta_days
print("10天前的日期和时间:", past_date)# timedelta 的属性
delta = datetime.timedelta(days=5, hours=3, minutes=30, seconds=15)
print("天数:", delta.days)
print("总秒数:", delta.total_seconds())
print("秒数(不包括天):", delta.seconds)
print("微秒数:", delta.microseconds)# timedelta 的比较
delta1 = datetime.timedelta(days=5)
delta2 = datetime.timedelta(days=10)
print("delta1 < delta2:", delta1 < delta2)
print("delta1 == delta2:", delta1 == delta2)
print("delta1 > delta2:", delta1 > delta2)
格式化日期和时间
# 日期和时间格式化为字符串
formatted_datetime = now.strftime("%Y-%m-%d %H:%M:%S")
print("格式化日期和时间:", formatted_datetime)# 字符串解析为日期和时间
parsed_datetime = datetime.datetime.strptime("2023-06-04 14:30:15", "%Y-%m-%d %H:%M:%S")
print("解析后的日期和时间:", parsed_datetime)
获取日期和时间的各个部分
print("年:", now.year)
print("月:", now.month)
print("日:", now.day)
print("小时:", now.hour)
print("分钟:", now.minute)
print("秒:", now.second)
print("微秒:", now.microsecond)
时区处理
import pytz# 获取当前时间(带时区)
now_utc = datetime.datetime.now(pytz.utc)
print("当前UTC时间:", now_utc)# 将当前时间转换为其他时区
now_est = now_utc.astimezone(pytz.timezone('US/Eastern'))
print("当前美国东部时间:", now_est)# 创建带时区的日期和时间
aware_datetime = datetime.datetime(2023, 6, 4, 14, 30, 15, tzinfo=pytz.timezone('US/Eastern'))
print("带时区的日期和时间:", aware_datetime)
日期和时间的比较
date1 = datetime.date(2023, 6, 4)
date2 = datetime.date(2024, 6, 4)print("date1 是否早于 date2:", date1 < date2)
print("date1 是否等于 date2:", date1 == date2)
print("date1 是否晚于 date2:", date1 > date2)
常用的日期和时间格式化符号
%Y
:四位数的年份,如 2023%m
:两位数的月份(01-12)%d
:两位数的日期(01-31)%H
:两位数的小时(00-23)%M
:两位数的分钟(00-59)%S
:两位数的秒(00-59)%f
:微秒(000000-999999)%z
:时区偏移%Z
:时区名称%a
:简写的星期几名称%A
:完整的星期几名称%b
:简写的月份名称%B
:完整的月份名称
示例代码
# 当前日期和时间
now = datetime.datetime.now()
print("当前日期和时间:", now)# 格式化日期和时间
formatted_datetime = now.strftime("%Y-%m-%d %H:%M:%S")
print("格式化日期和时间:", formatted_datetime)# 解析日期和时间字符串
parsed_datetime = datetime.datetime.strptime("2023-06-04 14:30:15", "%Y-%m-%d %H:%M:%S")
print("解析后的日期和时间:", parsed_datetime)# 日期加减
tomorrow = now + datetime.timedelta(days=1)
print("明天:", tomorrow)# 时区处理
import pytz
now_utc = datetime.datetime.now(pytz.utc)
print("当前UTC时间:", now_utc)
now_est = now_utc.astimezone(pytz.timezone('US/Eastern'))
print("当前美国东部时间:", now_est)
7、datatime需要输出今天的日期,时分秒是0
要创建一个包含今天的日期但时分秒都为 0 的 datetime
对象,可以使用 datetime
模块中的 datetime.combine
方法,结合 date
对象和 time
对象。以下是如何实现这一点的示例代码:
from datetime import datetime, time# 获取今天的日期
today_date = datetime.today().date()# 创建一个包含今天日期但时分秒为0的datetime对象
today_midnight = datetime.combine(today_date, time.min)print("今天的日期,时分秒为0:", today_midnight)
输出结果
今天的日期,时分秒为0: 2024-05-28 00:00:00
解释
datetime.today().date()
获取今天的日期,不包含时间部分。time.min
返回一个时间对象,表示 00:00:00。datetime.combine(today_date, time.min)
将今天的日期与 00:00:00 组合成一个新的datetime
对象。
这样你就得到了一个 datetime
对象,表示今天的日期且时分秒都为 0。
Python处理时间戳和时间转换
在 Python 中,处理时间戳(即自 Unix 纪元(1970 年 1 月 1 日)以来的秒数)通常使用 time
和 datetime
模块。以下是一些常用的时间戳操作和时间转换方法:
1、导入模块
import time
import datetime
2、获取当前时间戳
current_timestamp = time.time()
print("当前时间戳:", current_timestamp)
3、时间戳转换为日期和时间
使用 time
模块
# 将时间戳转换为本地时间的 struct_time 对象
local_time = time.localtime(current_timestamp)
print("本地时间:", local_time)# 将时间戳转换为 UTC 时间的 struct_time 对象
utc_time = time.gmtime(current_timestamp)
print("UTC 时间:", utc_time)# 将 struct_time 对象格式化为字符串
formatted_local_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("格式化的本地时间:", formatted_local_time)
使用 datetime
模块
# 将时间戳转换为 datetime 对象
datetime_obj = datetime.datetime.fromtimestamp(current_timestamp)print("datetime 对象:", datetime_obj)# 将时间戳转换为 UTC 的 datetime 对象
utc_datetime_obj = datetime.datetime.utcfromtimestamp(current_timestamp)
print("UTC datetime 对象:", utc_datetime_obj)
# 或
utc_datetime_obj = datetime.datetime.fromtimestamp(current_timestamp, datetime.timezone.utc) # 默认是本地ip时区时间
print("UTC datetime 对象:", utc_datetime_obj)# 格式化 datetime 对象为字符串
formatted_datetime = datetime_obj.strftime("%Y-%m-%d %H:%M:%S")
print("格式化的 datetime 对象:", formatted_datetime)
4、日期和时间转换为时间戳
使用 time
模块
# 创建 struct_time 对象
struct_time = time.strptime("2023-06-04 14:30:15", "%Y-%m-%d %H:%M:%S")# 将 struct_time 对象转换为时间戳
timestamp = time.mktime(struct_time)
print("时间戳:", timestamp)
使用 datetime
模块
# 创建 datetime 对象
datetime_obj = datetime.datetime(2023, 6, 4, 14, 30, 15)# 将 datetime 对象转换为时间戳
timestamp = datetime_obj.timestamp()
print("时间戳:", timestamp)
5、处理带时区的时间戳
import pytz# 获取当前时间戳
current_timestamp = time.time()# 将时间戳转换为带时区的 datetime 对象
datetime_obj = datetime.datetime.fromtimestamp(current_timestamp, pytz.timezone('US/Eastern'))
print("带时区的 datetime 对象:", datetime_obj)# 将带时区的 datetime 对象转换为时间戳
timestamp_with_tz = datetime_obj.timestamp()
print("带时区的时间戳:", timestamp_with_tz)
6、示例代码
import time
import datetime
import pytz# 获取当前时间戳
current_timestamp = time.time()
print("当前时间戳:", current_timestamp)# 时间戳转换为日期和时间
local_time = time.localtime(current_timestamp)
formatted_local_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("本地时间:", formatted_local_time)# 使用 datetime 模块
datetime_obj = datetime.datetime.fromtimestamp(current_timestamp)
formatted_datetime = datetime_obj.strftime("%Y-%m-%d %H:%M:%S")
print("格式化的 datetime 对象:", formatted_datetime)# 日期和时间转换为时间戳
datetime_obj = datetime.datetime(2023, 6, 4, 14, 30, 15)
timestamp = datetime_obj.timestamp()
print("时间戳:", timestamp)# 处理带时区的时间戳
datetime_obj_with_tz = datetime.datetime.fromtimestamp(current_timestamp, pytz.timezone('US/Eastern'))
print("带时区的 datetime 对象:", datetime_obj_with_tz)
timestamp_with_tz = datetime_obj_with_tz.timestamp()
print("带时区的时间戳:", timestamp_with_tz)
相关文章:
python-datetime模块时间戳常用方法汇总
文章目录 datetime模块常用方法1、导入模块2、获取当前日期和时间3、获取当前日期4、创建特定日期或时间5、日期和时间的运算6、使用timedelta运算日期时间创建 timedelta 对象timedelta 的加减运算timedelta 的属性timedelta 的比较示例代码格式化日期和时间获取日期和时间的各…...

【Python报错】已解决ModuleNotFoundError: No module named ‘timm’
成功解决“ModuleNotFoundError: No module named ‘timm’”错误的全面指南 一、引言 在Python编程中,经常会遇到各种导入模块的错误,其中“ModuleNotFoundError: No module named ‘timm’”就是一个典型的例子。这个错误意味着你的Python环境中没有安…...
【设计模式】适配器模式(结构型)⭐⭐⭐
文章目录 1.概念1.1 什么是适配器模式1.2 优点与缺点 2.实现方式2.1 类适配器模式2.2 对象适配器模式 3 Java 哪些地方用到了适配器模式4 Spring 哪些地方用到了适配器模式 1.概念 1.1 什么是适配器模式 简单来说,适配器模式就是作为两个不兼容接口之间的桥梁。 1.…...
云原生周刊:Gateway API v1.1 发布 | 2024.6.3
开源项目推荐 Grafana Tanka Tanka 是 Grafana 开发的一款用于 Kubernetes 的灵活、可重用和简洁的配置工具,是使用 YAML 进行 Kubernetes 配置的一种替代方案。 pv-migrate pv-migrate 是一个 CLI 工具/kubectl 插件,可以轻松地将一个 Kubernetes PersistentVo…...

KotlinConf 2024:深入了解Kotlin Multiplatform (KMP)
KotlinConf 2024:深入了解Kotlin Multiplatform (KMP) 在近期的Google I/O大会上,我们推荐了Kotlin Multiplatform (KMP)用于跨移动、网页、服务器和桌面平台共享业务逻辑,并在Google Workspace中采用了KMP。紧接着,KotlinConf 2…...

探索ChatGPT-4在解决化学知识问题上的研究与应用
1. 概述 近年来,人工智能的发展主要集中在 GPT-4 等大型语言模型上。2023 年 3 月发布的这一先进模型展示了利用广泛知识应对从化学研究到日常问题解决等复杂挑战的能力。也开始进行研究,对化学的各个领域,从化学键到有机化学和物理化学&…...

性能狂飙:SpringBoot应用优化实战手册
在数字时代,速度就是生命,性能就是王道!《极速启航:SpringBoot性能优化的秘籍》带你深入SpringBoot的内核,探索如何打造一个飞速响应、高效稳定的应用。从基础的代码优化到高级的数据库连接池配置,再到前端…...

Github上一款开源、简洁、强大的任务管理工具:Condution
Condution 是一款开源任务管理工具,它以简洁易用、功能强大著称。它旨在为用户提供一个简单高效的平台,帮助他们管理日常任务、提高工作效率。 1. Condution 的诞生背景 现如今,市面上存在着许多任务管理软件,但它们往往价格昂贵…...

LeetCode-2938. 区分黑球与白球【贪心 双指针 字符串】
LeetCode-2938. 区分黑球与白球【贪心 双指针 字符串】 题目描述:解题思路一:贪心解题思路二:一次遍历统计1的个数,找0后累加左边的1的个数解题思路三: 题目描述: 桌子上有 n 个球,每个球的颜色…...

深度神经网络——什么是扩散模型?
1. 概述 在人工智能的浩瀚领域中,扩散模型正成为技术创新的先锋,它们彻底改变了我们处理复杂问题的方式,特别是在生成式人工智能方面。这些模型基于高斯过程、方差分析、微分方程和序列生成等坚实的数学理论构建。 业界巨头如Nvidia、Google…...
有代码冗余的检查工具嘛
是的,有一些代码质量工具可以帮助检查冗余代码。这些工具可以分析代码库,并识别出重复、冗余或不必要的代码片段。一些流行的代码质量工具包括: PMD: PMD 是一个开源的静态代码分析工具,支持多种编程语言,包括 Java、…...

3D培训大师:快速输出标准3D课件,打造沉浸式培训体验
随着技术的日新月异和市场的迅猛扩张,企业对员工专业技能培训的需求日益凸显。传统的培训方式往往依赖于实地操作、现场指导,这不仅需要大量的人力、物力和时间成本,而且存在安全风险。特别是化工、机械制造等行业,实操培训的成本…...

Python接口自动化测试:Json 数据处理实战
🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 上一篇说了关于json数据处理,是为了断言方便,这篇就带各位小伙伴实战一下…...

Java概述 , Java环境安装 , 第一个Hello World
环境变量,HelloWorld 1.会常用的dos命令 2.会安装java所需要的环境(jdk) 3.会配置java的环境变量 4.知道java开发三步骤 5.会java的入门程序(HelloWorld) 6.会三种注释方式 7.知道Java入门程序所需要注意的地方 8.知道println和print的区别第一章 Java概述 1.1 JavaSE体系介绍…...

查看Linux端口占用和开启端口命令
查看端口的使用的情况 lsof 命令 比如查看80端口的使用的情况 lsof -i tcp:80列出所有的端口 netstat -ntlp查看端口的状态 /etc/init.d/iptables status开启端口以开启端口80为例。 1 用命令开启端口 iptables -I INPUT -p tcp --dport 80 -j accpet --写入要开放的端口/…...

24-unittest简介
一、unittest简介 unittest是Python中常用的单元测试框架,与Java中的Junit单元测试框架类似。 二、示例程序 1)导入unittest模块 import unittest 2)使用help()函数查看源码中的示例程序 help(unittest) Simple usage:import unittestc…...
Kotlin 中,扩展函数(Extension Functions)
在 Kotlin 中,扩展函数(Extension Functions)是用于向已有的类添加新功能而无需继承或使用装饰模式的一个特性。这允许你通过更自然的语法为现有类型添加方法。 下面是一个简单的扩展函数示例: // 定义一个扩展函数,…...

堪称2024最强的前端面试场景题,让419人成功拿到offer
前言 2024年的秋季招聘还有两个月就即将到来,很多同学开始思考前端面试中场景题的重要性。这里我提供一些见解和建议来帮助大家准备即将到来的面试。 首先,理解面试中场景题的必要性是至关重要的。与算法或理论问题不同,场景题更贴近实际工…...

使用node将页面转为pdf?(puppeteer实现)
本文章适合win系统下实验(linux,mac可能会出现些莫名其妙的bug我也不会解决) 具体过程 首先了解什么时无头浏览器启动无头浏览器打开指定的url页面设置导出pdf格式开始转化完整基础代码 首先了解什么时无头浏览器 没有界面的浏览器下载pupp…...

龙迅#LT8711H支持TYPE-C/DP/EDP转HDMI功能应用,分辨率支持 1080p@60Hz,芯片内置固件!
1. 概述 LT8711H是一款高性能 Type-C/DP1.2/EDP 转 HD-DVI1.3 转换器,设计用于将 USB Type-C 源或 DP1.2 源连接到 HD-DVI1.3 接收器。 该LT8711H集成了符合 DP1.2 标准的接收器和符合 HD-DVI1.3 标准的发射器。此外,还包括两个用于 CC 通信的 CC 控制器…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...

MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)
旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据!该数据集源自2025年4月发表于《地理学报》的论文成果…...
ArcPy扩展模块的使用(3)
管理工程项目 arcpy.mp模块允许用户管理布局、地图、报表、文件夹连接、视图等工程项目。例如,可以更新、修复或替换图层数据源,修改图层的符号系统,甚至自动在线执行共享要托管在组织中的工程项。 以下代码展示了如何更新图层的数据源&…...