前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python-datetime模块&时间戳常用方法汇总

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

作者头像
梦无矶小仔
发布2024-06-06 15:46:42
4400
发布2024-06-06 15:46:42
举报

datetime模块常用方法

datetime 模块是 Python 标准库中的一个模块,提供了处理日期和时间的类和方法。以下是一些常用的 datetime 操作和用法:

导入模块

代码语言:javascript
复制
import datetime

获取当前日期和时间

代码语言:javascript
复制
now = datetime.datetime.now()
print("当前日期和时间:", now)

获取当前日期

代码语言:javascript
复制
today = datetime.date.today()
print("当前日期:", today)

创建特定日期或时间

创建一个特定的日期

代码语言:javascript
复制
# 创建一个特定的日期
specific_date = datetime.date(2023, 6, 4)
print("特定日期:", specific_date)

创建一个特定的时间

代码语言:javascript
复制
# 创建一个特定的时间
specific_time = datetime.time(14, 30, 15)
print("特定时间:", specific_time)

创建一个特定的日期和时间

代码语言:javascript
复制
# 创建一个特定的日期和时间
specific_datetime = datetime.datetime(2023, 6, 4, 14, 30, 15)
print("特定日期和时间:", specific_datetime)

日期和时间的运算

代码语言:javascript
复制
# 日期加减
tomorrow = today + datetime.timedelta(days=1)
print("明天:", tomorrow)

yesterday = today - datetime.timedelta(days=1)
print("昨天:", yesterday)

时间差

代码语言:javascript
复制
# 时间差
time_diff = datetime.datetime(2024, 6, 4) - datetime.datetime(2023, 6, 4)
print("时间差:", time_diff)

使用timedelta运算日期时间

datetime.timedelta 是 Python datetime 模块中的一个类,用于表示两个日期或时间之间的差值。它可以用于日期和时间的加减运算。以下是一些常见的 timedelta 用法和示例:

代码语言:javascript
复制
import datetime
from datetime import timedelta

创建 timedelta 对象

timedelta 可以通过指定天、秒、微秒、毫秒、分钟、小时和周来创建:

创建一个表示10天的 timedelta 对象

代码语言:javascript
复制
# 创建一个表示10天的 timedelta 对象
delta_days = datetime.timedelta(days=10)
print("10天的 timedelta:", delta_days)

创建一个表示2小时30分钟的 timedelta 对象

代码语言:javascript
复制
# 创建一个表示2小时30分钟的 timedelta 对象
delta_hours_minutes = datetime.timedelta(hours=2, minutes=30)
print("2小时30分钟的 timedelta:", delta_hours_minutes)

创建一个表示1周的 timedelta 对象

代码语言:javascript
复制
# 创建一个表示1周的 timedelta 对象
delta_weeks = datetime.timedelta(weeks=1)
print("1周的 timedelta:", delta_weeks)

timedelta 的加减运算

代码语言:javascript
复制
# 获取当前日期和时间
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 对象有一些属性可以访问其内部的天、秒和微秒:

代码语言:javascript
复制
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 对象可以进行比较运算:

代码语言:javascript
复制
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)

示例代码

代码语言:javascript
复制
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)

格式化日期和时间

代码语言:javascript
复制
# 日期和时间格式化为字符串
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)

获取日期和时间的各个部分

代码语言:javascript
复制
print("年:", now.year)
print("月:", now.month)
print("日:", now.day)
print("小时:", now.hour)
print("分钟:", now.minute)
print("秒:", now.second)
print("微秒:", now.microsecond)

时区处理

代码语言:javascript
复制
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)

日期和时间的比较

代码语言:javascript
复制
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:完整的月份名称

示例代码

代码语言:javascript
复制
# 当前日期和时间
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)

Python处理时间戳和时间转换

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

导入模块

代码语言:javascript
复制
import time
import datetime

获取当前时间戳

代码语言:javascript
复制
current_timestamp = time.time()
print("当前时间戳:", current_timestamp)

时间戳转换为日期和时间

使用 time 模块

将时间戳转换为本地时间的 struct_time 对象

代码语言:javascript
复制
# 将时间戳转换为本地时间的 struct_time 对象
local_time = time.localtime(current_timestamp)
print("本地时间:", local_time)

将时间戳转换为 UTC 时间的 struct_time 对象

代码语言:javascript
复制
# 将时间戳转换为 UTC 时间的 struct_time 对象
utc_time = time.gmtime(current_timestamp)
print("UTC 时间:", utc_time)

将 struct_time 对象格式化为字符串

代码语言:javascript
复制
# 将 struct_time 对象格式化为字符串
formatted_local_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("格式化的本地时间:", formatted_local_time)

使用 datetime 模块

将时间戳转换为 datetime 对象

代码语言:javascript
复制
# 将时间戳转换为 datetime 对象
datetime_obj = datetime.datetime.fromtimestamp(current_timestamp)
print("datetime 对象:", datetime_obj)

将时间戳转换为 UTC 的 datetime 对象

代码语言:javascript
复制
# 将时间戳转换为 UTC 的 datetime 对象
utc_datetime_obj = datetime.datetime.utcfromtimestamp(current_timestamp)
# 或
utc_datetime_obj = datetime.datetime.fromtimestamp(current_timestamp, datetime.timezone.utc)  # 默认是本地ip时区时间
print("UTC datetime 对象:", utc_datetime_obj)

格式化 datetime 对象为字符串

代码语言:javascript
复制
# 格式化 datetime 对象为字符串
formatted_datetime = datetime_obj.strftime("%Y-%m-%d %H:%M:%S")
print("格式化的 datetime 对象:", formatted_datetime)

日期和时间转换为时间戳

使用 time 模块

代码语言:javascript
复制
# 创建 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 模块

代码语言:javascript
复制
# 创建 datetime 对象
datetime_obj = datetime.datetime(2023, 6, 4, 14, 30, 15)

# 将 datetime 对象转换为时间戳
timestamp = datetime_obj.timestamp()
print("时间戳:", timestamp)

处理带时区的时间戳

代码语言:javascript
复制
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)

示例代码

代码语言:javascript
复制
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)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 梦无矶的测试开发之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • datetime模块常用方法
    • 导入模块
      • 获取当前日期和时间
        • 获取当前日期
          • 创建特定日期或时间
            • 日期和时间的运算
              • 使用timedelta运算日期时间
                • 创建 timedelta 对象
                • timedelta 的加减运算
                • timedelta 的属性
                • timedelta 的比较
                • 示例代码
                • 格式化日期和时间
                • 获取日期和时间的各个部分
                • 时区处理
                • 日期和时间的比较
                • 常用的日期和时间格式化符号
                • 示例代码
            • Python处理时间戳和时间转换
              • 导入模块
                • 获取当前时间戳
                  • 时间戳转换为日期和时间
                    • 使用 time 模块
                    • 使用 datetime 模块
                  • 日期和时间转换为时间戳
                    • 使用 time 模块
                    • 使用 datetime 模块
                  • 处理带时区的时间戳
                    • 示例代码
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档