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)


目录
相关文章
|
1月前
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
74 20
|
5天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
34 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
2天前
|
开发者 Python
Python入门:8.Python中的函数
### 引言 在编写程序时,函数是一种强大的工具。它们可以将代码逻辑模块化,减少重复代码的编写,并提高程序的可读性和可维护性。无论是初学者还是资深开发者,深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始,逐步讲解 Python 中的函数及其高级特性。
Python入门:8.Python中的函数
|
29天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
112 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
2月前
|
XML JSON 数据库
Python的标准库
Python的标准库
187 77
|
1月前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
32 3
|
1月前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
45 2
|
1月前
|
存储 人工智能 Python
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
16 0
|
2月前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
87 8
|
2月前
|
XML JSON 数据库
Python的标准库
Python的标准库
71 11

热门文章

最新文章