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)


目录
打赏
0
0
0
0
74
分享
相关文章
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
79 20
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
46 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
Python入门:8.Python中的函数
### 引言 在编写程序时,函数是一种强大的工具。它们可以将代码逻辑模块化,减少重复代码的编写,并提高程序的可读性和可维护性。无论是初学者还是资深开发者,深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始,逐步讲解 Python 中的函数及其高级特性。
Python入门:8.Python中的函数
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
132 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
|
2天前
|
Python中的round函数详解及使用示例
`round()`函数是Python内置的用于四舍五入数字的工具。它接受一个数字(必需)和可选的小数位数参数,返回最接近的整数或指定精度的浮点数。本文详细介绍其用法、参数及示例,涵盖基本操作、负数处理、特殊情况及应用建议,帮助你更好地理解和运用该函数。
[oeasy]python069_当前作用域都有些什么_列表dir_函数_builtins
本文介绍了Python中`dir()`函数的使用方法及其作用。`dir()`可以列出当前作用域内的所有变量和成员,类似于`locals()`,但`dir()`不仅限于本地变量,还能显示模块中的所有成员。通过`dir(__builtins__)`可以查看内建模块中的所有内建函数,如`print`、`ord`、`chr`等。此外,还回顾了`try-except-finally`结构在数据库连接中的应用,并解释了为何`print`函数可以直接使用而无需导入,因为它位于`__builtins__`模块中。最后,简要提及了删除`__builtins__.print`的方法及其影响。
19 0
|
1月前
|
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
33 3
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
23 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等