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)


目录
相关文章
|
14天前
|
XML JSON 数据库
Python的标准库
Python的标准库
133 77
|
27天前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
126 67
|
28天前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
120 64
|
20天前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
44 18
|
12天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
42 8
|
15天前
|
XML JSON 数据库
Python的标准库
Python的标准库
42 11
|
15天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
57 8
|
21天前
|
Python
Python中的函数
Python中的函数
34 8
|
23天前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
31 4
|
28天前
|
数据挖掘 Python
用Python轻松获取任意月份的公休日期
本文介绍了如何使用Python的`calendar`和`datetime`模块轻松获取任意月份的公休日期,包括周六和周日。通过示例代码,用户可以输入年份和月份,程序将输出该月份的所有公休日。这对于安排会议、规划旅行或数据分析都非常有用。
25 3