Python 时间日期处理库函数

简介: Python 时间日期处理库函数

标准库

datetime

>>> import datetime

>>> date = datetime.date(2023, 12, 20)

>>> print(date)

2023-12-20

>>> date = datetime.datetime(2023, 12, 20)

>>> print(date)

2023-12-20 00:00:00

>>> print(date.strftime('%Y-%m-%d'))

2023-12-20

>>> today = datetime.date.today()

>>> print(today)

2023-12-20

>>> today.strftime('%A')

'Wednesday'

>>> today.weekday()

2  # 0代表星期天,1代表星期一,以此类推

>>> today.isoweekday()

3 # 1代表星期一,以此类推,7代表星期天

>>> datetime.date(2023, 12, 24).weekday()

6

>>> datetime.date(2023, 12, 24).isoweekday()

7


dateutil

>>> from dateutil import parser

>>> date = '2023-12-20'

>>> parser.parse(date)

datetime.datetime(2023, 12, 20, 0, 0)

>>> parser.parse(date).strftime('%Y-%m-%d')

'2023-12-20'

>>> parser.parse(date).strftime('%A')

'Wednesday'

>>> parser.parse(date).weekday()

2


calendar

>>> import calendar

>>> calendar.weekday(2023, 12, 20)

2

附: 日期时间常用的格式

  • %Y:四位数的年份(例如2023)
  • %y:两位数的年份(例如23)
  • %m:两位数的月份(01到12)
  • %d:两位数的日期(01到31)
  • %H:24小时制的小时数(00到23)
  • %I:12小时制的小时数(01到12)
  • %M:两位数的分钟数(00到59)
  • %S:两位数的秒数(00到59)
  • %f:微秒数(000000到999999)
  • %p:AM或PM
  • %A:完整的星期名称(例如Monday星期一)
  • %a:简写的星期名称(例如Mon星期一)
  • %B:完整的月份名称(例如January一月)
  • %b:简写的月份名称(例如Jan一月)
  • %c:日期和时间,使用系统默认的格式
  • %x:日期,使用系统默认的格式
  • %X:时间,使用系统默认的格式
  • %Z:时区名称或缩写

第三方库

arrow

安装: pip install arrow

>>> import arrow

>>> arrow.Arrow(2023, 12, 20)

>>> arrow.Arrow(2023, 12, 20, 20, 30)

>>> arrow.utcnow()

>>> arrow.utcnow().ctime()

'Wed Dec 20 13:03:48 2023'

>>> arrow.utcnow().date()

datetime.date(2023, 12, 20)

>>> arw = arrow.utcnow()

>>> arw.dehumanize("2 days ago")

>>> import arrow

>>> arrow.Arrow(2023, 12, 20)

>>> arrow.Arrow(2023, 12, 20, 20, 30)

>>> arw = arrow.utcnow()

>>> arw

>>> arw.dehumanize("2 days ago")

>>> arw.dehumanize("in a month")

>>> arw.format('YYYY-MM-DD')

'2023-12-20'

>>> arw.format('YYYY-MM-DD HH:mm:ss ZZ')

'2023-12-20 13:05:46 +00:00'

>>> arw.format()

'2023-12-20 13:05:46+00:00'

>>> arw.format('YYYY-MM-DD HH:mm')

'2023-12-20 13:05'

>>> arw.isocalendar()

datetime.IsoCalendarDate(year=2023, week=51, weekday=3)

>>> arw.isoformat()

'2023-12-20T13:05:46.025519+00:00'

>>> arw.isoweekday()

3

>>> arw.weekday()

2

>>> arw.replace(year=2024, month=6)

>>> arw.replace(year=2024, month=6).format('YYYY-MM-DD')

'2024-06-20'

>>> arw.shift(days=4)

>>> arw.shift(days=-2)

>>> arw.time()

datetime.time(13, 5, 46, 25519)

>>> arw.timetuple()

time.struct_time(tm_year=2023, tm_mon=12, tm_mday=20, tm_hour=13, tm_min=5, tm_sec=46, tm_wday=2, tm_yday=354, tm_isdst=0)

时间段分割 .range()

>>> import arrow

>>> start = arrow.Arrow(2023, 12, 10, 12, 30)

>>> end = arrow.Arrow(2023, 12, 20, 6, 30)

>>> for r in arrow.Arrow.range('day', start, end):

   print(r)

2023-12-10T12:30:00+00:00

2023-12-11T12:30:00+00:00

2023-12-12T12:30:00+00:00

2023-12-13T12:30:00+00:00

2023-12-14T12:30:00+00:00

2023-12-15T12:30:00+00:00

2023-12-16T12:30:00+00:00

2023-12-17T12:30:00+00:00

2023-12-18T12:30:00+00:00

2023-12-19T12:30:00+00:00

>>> end = arrow.Arrow(2023, 12, 12, 6, 30)

>>> for r in arrow.Arrow.range('hour', start, end):

   print(r)

2023-12-10T12:30:00+00:00

2023-12-10T13:30:00+00:00

2023-12-10T14:30:00+00:00

2023-12-10T15:30:00+00:00

2023-12-10T16:30:00+00:00

2023-12-10T17:30:00+00:00

2023-12-10T18:30:00+00:00

2023-12-10T19:30:00+00:00

2023-12-10T20:30:00+00:00

2023-12-10T21:30:00+00:00

2023-12-10T22:30:00+00:00

2023-12-10T23:30:00+00:00

2023-12-11T00:30:00+00:00

2023-12-11T01:30:00+00:00

2023-12-11T02:30:00+00:00

2023-12-11T03:30:00+00:00

2023-12-11T04:30:00+00:00

2023-12-11T05:30:00+00:00

2023-12-11T06:30:00+00:00

2023-12-11T07:30:00+00:00

2023-12-11T08:30:00+00:00

2023-12-11T09:30:00+00:00

2023-12-11T10:30:00+00:00

2023-12-11T11:30:00+00:00

2023-12-11T12:30:00+00:00

2023-12-11T13:30:00+00:00

2023-12-11T14:30:00+00:00

2023-12-11T15:30:00+00:00

2023-12-11T16:30:00+00:00

2023-12-11T17:30:00+00:00

2023-12-11T18:30:00+00:00

2023-12-11T19:30:00+00:00

2023-12-11T20:30:00+00:00

2023-12-11T21:30:00+00:00

2023-12-11T22:30:00+00:00

2023-12-11T23:30:00+00:00

2023-12-12T00:30:00+00:00

2023-12-12T01:30:00+00:00

2023-12-12T02:30:00+00:00

2023-12-12T03:30:00+00:00

2023-12-12T04:30:00+00:00

2023-12-12T05:30:00+00:00

2023-12-12T06:30:00+00:00


pendulum

还有一个时间处理库 ,内容更加丰富有空再研究研究。

NAME
    pendulum
PACKAGE CONTENTS
    __version__
    _helpers
    _pendulum
    constants
    date
    datetime
    day
    duration
    exceptions
    formatting (package)
    helpers
    interval
    locales (package)
    mixins (package)
    parser
    parsing (package)
    testing (package)
    time
    tz (package)
    utils (package)
CLASSES
    builtins.object
        pendulum.formatting.formatter.Formatter
    datetime.date(builtins.object)
        pendulum.date.Date(pendulum.mixins.default.FormattableMixin, datetime.date)
            pendulum.datetime.DateTime(datetime.datetime, pendulum.date.Date)
    datetime.datetime(datetime.date)
        pendulum.datetime.DateTime(datetime.datetime, pendulum.date.Date)
    datetime.time(builtins.object)
        pendulum.time.Time(pendulum.mixins.default.FormattableMixin, datetime.time)
    datetime.timedelta(builtins.object)
        pendulum.duration.Duration
            pendulum.interval.Interval
    datetime.tzinfo(builtins.object)
        pendulum.tz.timezone.FixedTimezone(datetime.tzinfo, pendulum.tz.timezone.PendulumTimezone)
    enum.IntEnum(builtins.int, enum.ReprEnum)
        pendulum.day.WeekDay
    pendulum.mixins.default.FormattableMixin(builtins.object)
        pendulum.date.Date(pendulum.mixins.default.FormattableMixin, datetime.date)
            pendulum.datetime.DateTime(datetime.datetime, pendulum.date.Date)
        pendulum.time.Time(pendulum.mixins.default.FormattableMixin, datetime.time)
    pendulum.tz.timezone.PendulumTimezone(abc.ABC)
        pendulum.tz.timezone.FixedTimezone(datetime.tzinfo, pendulum.tz.timezone.PendulumTimezone)
        pendulum.tz.timezone.Timezone(zoneinfo.ZoneInfo, pendulum.tz.timezone.PendulumTimezone)
    zoneinfo.ZoneInfo(datetime.tzinfo)
        pendulum.tz.timezone.Timezone(zoneinfo.ZoneInfo, pendulum.tz.timezone.PendulumTimezone)


目录
相关文章
|
3天前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
6天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
23 0
|
5天前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
24 7
|
5天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
16 3
|
8天前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
27 5
|
7天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
19 1
|
9天前
|
测试技术 数据安全/隐私保护 Python
探索Python中的装饰器:简化和增强你的函数
【10月更文挑战第24天】在Python编程的海洋中,装饰器是那把可以令你的代码更简洁、更强大的魔法棒。它们不仅能够扩展函数的功能,还能保持代码的整洁性。本文将带你深入了解装饰器的概念、实现方式以及如何通过它们来提升你的代码质量。让我们一起揭开装饰器的神秘面纱,学习如何用它们来打造更加优雅和高效的代码。
|
11天前
|
弹性计算 安全 数据处理
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
|
14天前
|
Python
python的时间操作time-函数介绍
【10月更文挑战第19天】 python模块time的函数使用介绍和使用。
19 4
|
5天前
|
文字识别 自然语言处理 API
Python中的文字识别利器:pytesseract库
`pytesseract` 是一个基于 Google Tesseract-OCR 引擎的 Python 库,能够从图像中提取文字,支持多种语言,易于使用且兼容性强。本文介绍了 `pytesseract` 的安装、基本功能、高级特性和实际应用场景,帮助读者快速掌握 OCR 技术。
25 0