Python之datetime模块

1. python的datetime模块介绍

Python的datetime模块是用于操作日期和时间的标准库。它提供了处理日期、时间、时间间隔和日期时间算术等功能。在使用datetime模块时,常用的方法可以分为以下几类

  1. date类:表示日期,包含年、月、日等属性,主要方法有:

    1. date(year, month, day):构造一个date对象。
    2. today():返回今天的日期。
    3. fromtimestamp(timestamp):根据时间戳创建一个date对象。
    4. isoformat():将日期格式化为ISO标准格式。
    5. strftime():将日期格式化为指定格式的字符串。
  2. time类:表示时间,包含时、分、秒、微秒等属性,主要方法有:

    1. time(hour=0, minute=0, second=0, microsecond=0):构造一个time对象。
    2. now([tz]):返回当前时间。
    3. fromtimestamp(timestamp[, tz]):根据时间戳创建一个time对象。
    4. isoformat():将时间格式化为ISO标准格式。
    5. strftime():将时间格式化为指定格式的字符串。
  3. datetime类:表示日期和时间,是date和time类的结合体,包含年、月、日、时、分、秒、微秒等属性。主要方法有:

    1. datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0):构造一个datetime对象。
    2. now([tz]):返回当前日期和时间。
    3. fromtimestamp(timestamp[, tz]):根据时间戳创建一个datetime对象。
    4. isoformat():将日期时间格式化为ISO标准格式。
    5. strftime():将日期时间格式化为指定格式的字符串。
  4. timedelta类:表示两个日期或时间之间的时间差,主要方法有:

    1. timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0):构造一个timedelta对象。
      1. days:表示天数。
      2. seconds:表示秒数。
      3. microseconds:表示微秒数。
      4. total_seconds():将时间差转换为秒数。
  5. tzinfo类:表示时区信息,它是一个抽象类,主要方法有:

    1. utcoffset(dt):返回本地时间与UTC时间之间的时间差。
    2. tzname(dt):返回时区名称。
    3. dst(dt):返回夏令时的时间差。
  6. datetime模块还提供了一些其它函数,例如:

    1. time.sleep():暂停程序一段时间。
    2. datetime.datetime.strptime():将字符串解析为datetime对象。
    3. datetime.datetime.combine():将日期和时间结合为一个datetime对象。 总之,datetime模块提供了丰富的日期和时间处理功能,使得Python成为一个优秀的日期和时间处理工具。

2.datetime中的date类相关方法

date类是Python datetime模块中用于表示日期的类,包含年、月、日等属性,常用的方法有以下几种

2.1 datetime.date(year, month, day)构造一个date对象

构造一个date对象,参数year、month、day分别表示年、月、日,返回一个date对象

import datetime

d = datetime.date(2021, 10, 1)
print(d)   # 输出 2021-10-01

2.2 datetime.date.today() 返回当前日期的date对象

返回当前日期(今天)的date对象

import datetime

today = datetime.date.today()
print(today)   # 输出当前日期,例如 2022-04-19

2.3 fromtimestamp(timestamp)根据给定的时间戳创建一个date对象。

根据给定的时间戳(以秒为单位)创建一个date对象。

import datetime

t = 1640995200   # 2022年1月1日的时间戳
d = datetime.date.fromtimestamp(t)
print(d)   # 输出 2022-01-01

2.4 isoformat()将日期格式化为ISO标准格式

将日期格式化为ISO标准格式“YYYY-MM-DD”,返回一个字符串。

import datetime

d = datetime.date(2022, 4, 19)
s = d.isoformat()
print(s)   # 输出 2022-04-19

2.5 strftime(format)将日期格式化为指定格式的字符串

将日期格式化为指定格式的字符串,返回一个字符串。常用的格式化字符串有:

import datetime

d = datetime.date(2022, 4, 19)
s = d.strftime("%Y-%m-%d")
print(s)   # 输出 2022-04-19

2.6 year返回date对象的年份

返回date对象的年份。

import datetime

d = datetime.date(2022, 4, 19)
year = d.year
print(year)   # 输出 2022

2.7 month返回date对象的月份

返回date对象的月份

import datetime

d = datetime.date(2022, 4, 19)
month = d.month
print(month)   # 输出 4

2.8 day 返回date对象的日期

返回date对象的日期

import datetime

d = datetime.date(2022, 4, 19)
day = d.day
print(day)   # 输出 19

3.datetime中的time类相关方法

time类是Python datetime模块中用于表示时间的类,包含时、分、秒、微秒等属性,常用的方法有以下几种

3.1 datetime.time构造一个time对象

构造一个time对象,参数hour、minute、second、microsecond分别表示小时、分钟、秒和微秒,都是可选的,默认为0,返回一个time对象

import datetime

t = datetime.time(14, 30, 0)
print(t)   # 输出 14:30:00

3.2 datetime.time.now(tz=None)返回一个包含当前时间的time对象

返回一个包含当前时间的time对象。tz是一个可选的时区对象,默认为None,表示本地时间。

import datetime

t = datetime.time.now()
print(t)   # 输出当前时间,例如 13:42:55.052342

3.3 fromtimestamp根据给定的时间戳,创建一个time对象

根据给定的时间戳(以秒为单位)创建一个time对象,有一个可选的时区参数

import datetime

t = datetime.time.fromtimestamp(1640995200)
print(t)   # 输出 00:00:00

3.4 isoformat()将时间格式化为ISO标准格式

将时间格式化为ISO标准格式“HH:MM:SS.ssssss”,返回一个字符串。

import datetime

t = datetime.time(14, 30, 0, 200000)
s = t.isoformat()
print(s)   # 输出 14:30:00.200000

3.5 strftime(format)将时间格式化为指定格式的字符串

将时间格式化为指定格式的字符串,返回一个字符串。常用的格式化字符串有:

  • %H:代表小时,比如下午2点,格式化为“%H”;
  • %M:代表分钟,比如30分,格式化为“%M”;
  • %S:代表秒数,比如10秒,格式化为“%S”;
  • %f:代表微秒数,比如500000微秒,格式化为“%f”。
import datetime

t = datetime.time(14, 30, 0, 200000)
s = t.strftime("%H:%M:%S.%f")
print(s)   # 输出 14:30:00.200000

3.6 hour返回time对象的小时数

返回time对象的小时数。

import datetime

t = datetime.time(14, 30, 0, 200000)
hour = t.hour
print(hour)   # 输出 14

3.7 minute返回time对象的分钟数

返回time对象的分钟数

import datetime

t = datetime.time(14, 30, 0, 200000)
minute = t.minute
print(minute)   # 输出 30

3.8 second返回time对象的秒数

返回time对象的秒数。

import datetime

t = datetime.time(14, 30, 0, 200000)
second = t.second
print(second)   # 输出 0

3.9 microsecond返回time对象的微秒数

import datetime

t = datetime.time(14, 30, 0, 200000)
microsecond = t.microsecond
print(microsecond)   # 输出 200000

3.10 replace(year=None, month=None, day=None, hour=None, minute=None, second=None, microsecond=None, tzinfo=None)

返回一个替换原datetime部分的新datetime对象。

3.11 combine(date, time)将date对象和time对象组合成datetime对象

将date对象和time对象组合成datetime对象。

4 datetime中的datetime类相关方法

datetime类是Python datetime模块中用于表示日期和时间的类,包含年、月、日、时、分、秒、微秒等属性。常用的方法有以下几种:

4.1 datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0)构造一个datetime对象

构造一个datetime对象,参数year、month、day、hour、minute、second、microsecond分别表示年、月、日、时、分、秒和微秒,都是可选的,默认为0,返回一个datetime对象

import datetime

dt = datetime.datetime(2022, 4, 19, 13, 45, 0)
print(dt)   # 输出 2022-04-19 13:45:00

4.2now(tz=None)返回一个包含当前日期和时间的datetime对象

返回一个包含当前日期和时间的datetime对象。tz是一个可选的时区对象,默认为None,表示本地时间。

import datetime

dt = datetime.datetime.now()
print(dt)   # 输出当前日期和时间,例如 2022-04-19 13:42:55.052342

4.3 romtimestamp(timestamp[, tz])根据给定的时间戳创建一个datetime对象

根据给定的时间戳(以秒为单位)创建一个datetime对象,有一个可选的时区参数。

import datetime

dt = datetime.datetime.fromtimestamp(1640995200)
print(dt)   # 输出 2021-12-31 16:00:00

4.4 isoformat()将日期时间格式化为ISO标准格式

将日期时间格式化为ISO标准格式“YYYY-MM-DDTHH:MM:SS.ssssss”,返回一个字符串。

import datetime

dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
s = dt.isoformat()
print(s)   # 输出 2022-04-19T13:45:00.200000

4.5 strftime(format)将日期时间格式化为指定格式的字符串

将日期时间格式化为指定格式的字符串,返回一个字符串。常用的格式化字符串有:

  • %Y:代表年份,比如2019年,格式化为“%Y”;
  • %m:代表月份,比如5月,格式化为“%m”;
  • %d:代表日期,比如20日,格式化为“%d”;
  • %H:代表小时,比如下午2点,格式化为“%H”;
  • %M:代表分钟,比如30分,格式化为“%M”;
  • %S:代表秒数,比如10秒,格式化为“%S”;
  • %f:代表微秒数,比如500000微秒,格式化为“%f”
import datetime

dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
s = dt.strftime("%Y-%m-%d %H:%M:%S.%f")
print(s)   # 输出 2022-04-19 13:45:00.200000

4.6 year返回datetime对象的年份

返回datetime对象的年份。

import datetime

dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
year = dt.year
print(year)   # 输出 2022

4.7 month返回datetime对象的月份

返回datetime对象的月份。

import datetime

dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
month = dt.month
print(month)   # 输出 4

4.8 day返回datetime对象的日期

返回datetime对象的日期

import datetime

dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
day = dt.day
print(day)   # 输出 19

4.9 hour返回datetime对象的小时数

返回datetime对象的小时数。

import datetime

dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
hour = dt.hour
print(hour)   # 输出 13

4.10 minute返回datetime对象的分钟数

返回datetime对象的分钟数

import datetime

dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
minute = dt.minute
print(minute)   # 输出 45

4.11 second返回datetime对象的秒数

返回datetime对象的秒数。

import datetime

dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
second = dt.second
print(second)   # 输出 0

4.12 microsecond返回datetime对象的微秒数

返回datetime对象的微秒数

import datetime

dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
microsecond = dt.microsecond
print(microsecond)   # 输出 200000

5 datetime中的timedelta类相关方法

timedelta类是Python datetime模块中用于表示时间间隔的类,可以表示一段时间的天数、秒数、毫秒数等。常用的方法有以下几种

5.1 timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)构造一个timedelta对象

构造一个timedelta对象,参数days、seconds、microseconds、milliseconds、minutes、hours、weeks分别表示天数、秒数、微秒数、毫秒数、分钟数、小时数和周数,都是可选的,默认为0

import datetime

td = datetime.timedelta(days=3, hours=2, minutes=30)
print(td)   # 输出 3 days, 2:30:00

5.2 total_seconds()将timedelta对象表示的时间间隔以秒为单位返回

将timedelta对象表示的时间间隔以秒为单位返回,返回一个整数。注意,该方法只在Python2.7及以上版本中支持。

import datetime

td = datetime.timedelta(days=3, hours=2, minutes=30)
seconds = td.total_seconds()
print(seconds)   # 输出 267600.0

5.3 days返回timedelta对象表示的天数

返回timedelta对象表示的天数。

import datetime

td = datetime.timedelta(days=3, hours=2, minutes=30)
days = td.days
print(days)   # 输出 3

5.4 seconds返回timedelta对象表示的秒数

import datetime

td = datetime.timedelta(days=3, hours=2, minutes=30)
seconds = td.seconds
print(seconds)   # 输出 9000

5.5 microseconds返回timedelta对象表示的微秒数

返回timedelta对象表示的微秒数。

import datetime

td = datetime.timedelta(days=3, hours=2, minutes=30)
microseconds = td.microseconds
print(microseconds)   # 输出 0

5.6 __ add __(other)

实现加法操作,返回一个新的timedelta对象,表示两个timedelta对象的时间间隔之和。

import datetime

td1 = datetime.timedelta(days=3)
td2 = datetime.timedelta(hours=2, minutes=30)
td3 = td1 + td2
print(td3)   # 输出 3 days, 2:30:00

5.7 __ sub __(other)

实现减法操作,返回一个新的timedelta对象,表示两个timedelta对象的时间间隔之差。

import datetime

dt1 = datetime.datetime(2022, 4, 19, 13, 45, 0)
dt2 = datetime.datetime(2022, 4, 16, 12, 0, 0)
td = dt1 - dt2
print(td)   # 输出 3 days, 1:45:00

5.8 __ mul __(n)

实现乘法操作,返回一个新的timedelta对象,表示该timedelta对象的时间间隔乘以一个整数n。

import datetime

td1 = datetime.timedelta(days=3)
td2 = td1 * 2
print(td2)   # 输出 6 days, 0:00:00
posted @ 2022-04-01 00:07  我不知道取什么名字好  阅读(117)  评论(0编辑  收藏  举报