python-datetime模块时间戳常用方法汇总

2024-06-06 20:12

本文主要是介绍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

解释

  1. datetime.today().date() 获取今天的日期,不包含时间部分。
  2. time.min 返回一个时间对象,表示 00:00:00。
  3. datetime.combine(today_date, time.min) 将今天的日期与 00:00:00 组合成一个新的 datetime 对象。

这样你就得到了一个 datetime 对象,表示今天的日期且时分秒都为 0。

Python处理时间戳和时间转换

在 Python 中,处理时间戳(即自 Unix 纪元(1970 年 1 月 1 日)以来的秒数)通常使用 timedatetime 模块。以下是一些常用的时间戳操作和时间转换方法:

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模块时间戳常用方法汇总的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1037113

相关文章

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

golang中reflect包的常用方法

《golang中reflect包的常用方法》Go反射reflect包提供类型和值方法,用于获取类型信息、访问字段、调用方法等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录reflect包方法总结类型 (Type) 方法值 (Value) 方法reflect包方法总结

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互