Python中时间元组与时间日期的使用及说明

 更新时间:2024年08月02日 14:47:34   作者:trayvontang  
这篇文章主要介绍了Python中时间元组与时间日期使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、时间元组(time.struct_time)

python中时间元组是一个比较重要的类型,通过时间元组我们可以获取,年月日时分秒,星期几,一年中的第几天等信息。

索引属性属性含义属性取值
0tm_year4位数年份0000-9999
1tm_mon1-12
2tm_mday1-31
3tm_hour小时0-23
4tm_min分钟0-59
5tm_sec0-61,60、61是闰秒
6tm_wday星期几0-6,0是周一
7tm_yday一年的第几天1到366,366闰年
8tm_isdst夏令标识1-夏令时,0-非夏令时 -1-不确定,可能是因为手动创建

import time

# <class 'time.struct_time'>
localtime = time.localtime()
# time.struct_time(tm_year=2019, tm_mon=11, tm_mday=3, tm_hour=9, tm_min=8, tm_sec=21, tm_wday=0, tm_yday=307, tm_isdst=0)
print(type(localtime))
print(localtime)

for attr in localtime:
    print(attr)

二、时间格式化

时间格式化是非常常用的一个功能,不管是从字符串到struct_time、date、datetime,还是从struct_time、date、datetime到字符串都需要用到。

格式化主要涉及到2个函数:

  • strftime:str表示字符串,f是format,time是时间,就是时间格式化为字符串
  • strptime:str表示字符串,p是parse,time是时间,就是字符串解析为时间

time和datetime都有这2个函数,后面会介绍,下面先看一下格式化的含义。

格式含义
%y两位数的年份表示,00-99
%Y四位数的年份表示,0000-9999
%m月份,01-12
%d日期,0-31
%H24小时制小时数,0-23
%I12小时制小时数,01-12
%M分钟,00-59
%S秒,00-59
%a本地简化星期名称
%A本地完整星期名称
%b本地简化的月份名称
%B本地完整的月份名称
%c本地日期表示和时间表示
%j第几天,001-366
%p本地A.M\P.M
%U第几周,00-53,星期天为星期的开始
%W第几周,00-53,星期一为星期的开始
%w星期几,0-6,星期天为星期的开始
%x本地日期
%X本地时间
%Z当前时区的名称
%%%符合,因为被当做转义字符

三、time

time模块,主要处理和时间元组(struct_time)的格式化和解析。

当日也有本地化时间、获取时间戳,程序休眠等函数。

注意和datetime.time区分,datetime.time就是一般意义上的日期时间中的时间部分,主要就是时分秒。

import time

# 格林威治天文时间元组
print(time.gmtime())
print(time.gmtime(1577851199))

# 本地时间元组
print(time.localtime())
print(time.localtime(1577851199))

# 格式化时间
# time.asctime([tupletime])
print(time.asctime())

# time.ctime([secs])
print(time.ctime())

# 格式化成2020-01-01 11:59:59形式
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

# 将格式字符串转换为时间戳
a = "2020-01-01 11:59:59"
str2TT = time.strptime(a, "%Y-%m-%d %H:%M:%S")

# 时间元组到时间戳
ts = time.mktime(str2TT)
print(ts)

# 时间戳
print(time.time())
# 休眠秒
time.sleep(1)

四、datetime

datetime模块中主要使用的是:

  • datetime.date:日期(2025-01-01)
  • datetime.time:时间(12:00:00)
  • datetime.datetime:时期(2025-01-01 12:00:00)
import datetime
import time

today = datetime.date.today()
print(today)
print(type(today))

# 星期几,isoweekday星期天是第一天,weekday星期一是第一天
print(today.isoweekday())
print(today.weekday())
# 时间元组
print(today.timetuple())
# 第几天
print(today.toordinal())
datetime.date.fromordinal(today.toordinal())

print(datetime.date(2020, 1, 1))
datetime.date.fromtimestamp(time.time())

print(datetime.time(12, 59, 59, 999))

# 现在本地日期
print(datetime.datetime.now())
# 现在utc日期
print(datetime.datetime.utcnow())
print(datetime.datetime(2020, 1, 31, 12, 59, 59, 0))

# 字符串到日期
print(datetime.datetime.strptime('2020-1-1 12:01', '%Y-%m-%d %H:%M'))
# 日期格式化
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M'))

最常用的还是:

# 字符串得到日期
datetime.datetime.strptime('2020-1-1 12:01', '%Y-%m-%d %H:%M')
# 日期格式化
datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

五、timedelta

timedelta也是datetime模块下的,主要是用于日期计算的。

在需要使用到时间间隔的时候非常有用,例如需要上一个月,前一天,上一周这样的日期,就可以使用datetime和timedelta很容易得到。

import datetime
import time

today = datetime.date.today()
# 上个月最后一天
lastMonthLastDay = datetime.date(today.year, today.month, 1) - datetime.timedelta(1)
print(lastMonthLastDay)
# 上个月第一天
lastMonthFirstDay = datetime.date(lastMonthLastDay.year, lastMonthLastDay.month, 1)
print(lastMonthFirstDay)

# 一周之前
print(today - datetime.timedelta(7))

# 本周一
thisMonday = today - datetime.timedelta(today.isoweekday()-1)
print(thisMonday)
# 本周星期天
lastMonday = thisMonday - datetime.timedelta(7)
print(lastMonday)

# 上周星期天
lastSunday = today - datetime.timedelta(days=today.isoweekday())
print(lastSunday)
# 上周星期一
lastMonday = lastSunday - datetime.timedelta(days=6)
print(lastMonday)

# 8小时后
print(datetime.datetime.now() + datetime.timedelta(hours=8))

start = datetime.datetime.now()
time.sleep(1)
end = datetime.datetime.now()
diff = end - start
# <class 'datetime.timedelta'>
print(type(diff))
print(diff)

六、calendar

import calendar
# 是否是闰年
print(calendar.isleap(2020))

calendar是日历

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 时间序列预测中的数据滑窗操作实例(python实现)

    时间序列预测中的数据滑窗操作实例(python实现)

    滑动窗口操作非常普遍,非常有用,它们也很容易在Python中实现,下面这篇文章主要给大家介绍了关于时间序列预测中的数据滑窗操作python实现的相关资料,需要的朋友可以参考下
    2022-03-03
  • Python3安装requests库的步骤及使用示例和常见问题

    Python3安装requests库的步骤及使用示例和常见问题

    Python3的requests库是处理HTTP请求最常用的工具之一,它简化了与Web服务的交互,让开发者能更专注于业务逻辑,而非底层网络细节,这篇文章主要介绍了Python3安装requests库的步骤及使用示例和常见问题,需要的朋友可以参考下
    2026-06-06
  • Django REST framework 分页的实现代码

    Django REST framework 分页的实现代码

    这篇文章主要介绍了Django REST framework 分页的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Python关键字及可变参数*args,**kw原理解析

    Python关键字及可变参数*args,**kw原理解析

    这篇文章主要介绍了Python关键字及可变参数*args,**kw原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 利用Python实现Markdown文档格式转换详解

    利用Python实现Markdown文档格式转换详解

    这篇文章主要介绍了如何利用Python中的MarkItDown库将多种文件高效转换为Markdown文本,以及如何使用Python-Markdown库将Markdown文本转换为HTML,需要的可以参考下
    2025-03-03
  • Python利用AutoGrad实现自动计算函数斜率和梯度

    Python利用AutoGrad实现自动计算函数斜率和梯度

    AutoGrad 是一个老少皆宜的 Python 梯度计算模块。对于大学生、机器学习爱好者而言,你只需要传递给它Numpy这样的标准数据库下编写的损失函数,它就可以自动计算损失函数的导数(梯度)。本文将从普通斜率计算开始,介绍到如何只使用它来实现一个逻辑回归模型
    2022-07-07
  • python使用fastapi实现多语言国际化的操作指南

    python使用fastapi实现多语言国际化的操作指南

    本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和最佳实践,需要的朋友可以参考下
    2025-02-02
  • 使用Python进行QQ批量登录的实例代码

    使用Python进行QQ批量登录的实例代码

    这篇文章主要介绍了使用Python进行QQ批量登录的实例代码,代码简单易懂非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • Flask请求数据获取方法详解

    Flask请求数据获取方法详解

    在 Flask 中,所有客户端请求的数据都通过全局的 request 对象访问,该对象是 请求上下文 的一部分,仅在请求处理期间存在,Flask 在收到请求时自动创建 request 对象,并根据请求类型和内容类型解析数据,本文介绍了Flask请求数据获取方法,需要的朋友可以参考下
    2025-04-04
  • Python基础知识+结构+数据类型

    Python基础知识+结构+数据类型

    这篇文章主要介绍了Python基础知识+结构+数据类型,文章基于python基础知识围绕主题展开详细内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05

最新评论