1、datetime模块:日期包含年、月、日、小时、分钟、秒和微秒。datetime 模块有许多方法可以返回有关日期对象的信息。一般操作就是获取时间是哪年哪月什么时间端,处于那个时区范围,几个操作时间之间的间隔是多少等等。

  2、datetime模块定义了5个类:

  序号

  类

  含义

  1

  datetime.datetime

  表示日期时间的类

  2

  datetime.timedelta

  表示时间间隔,即两个时间点的间隔

  3

  datetime.date

  表示日期的类

  4

  datetime.time

  表示时间的类

  5

  datetime.tzinfo

  时区的相关信息

  其中:1完全可以理解时3和4的整合。

  # ---------datetime类(日期时间)操作统计---------------#

  x_today=datetime.datetime() # 当前本地时间的datetime对象

  print(x_today)

  # 结果显示2021-11-12 19:14:53.984157

  x=datetime.datetime.now() # 获取当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间

  print(x)

  # 结果显示2021-11-12 19:14:53.984157

  x_utcnow=datetime.datetime.utcnow() # 当前utc时间的datetime对象

  print(x_utcnow)

  # 结果显示2021-11-12 14:22:44.318067

  x_utcTStamp=

  datetime.datetime.utcfromtimestamp(2021 - 11 - 12 - 22 - 9 - 24) # 根据时间戮创建一个datetime对象

  print(x_utcTStamp)

  # 结果显示1970-01-01 00:32:23

  print(x.date()) # 获取当前日期

  # 结果显示2021-11-12

  print(x.year) # 获取当前日期--年份

  # 结果显示2021

  print(x.month) # 获取当前日期--月份

  # 结果显示11

  print(x.day) # 获取当前日期--那一天

  # 结果显示12

  print(x.hour) # 获取当前日期--小时

  # 结果显示19

  print(x.minute) # 获取当前日期--分钟

  # 结果显示14

  print(x.second) # 获取当前日期--秒

  # 结果显示53

  print(x.microsecond) # 获取当前日期--微秒

  # 结果显示984157

  print(x.tzinfo)

  # 结果显示None

  print(x.now()) # 获取当前时间

  # 结果显示2021-11-12 19:14:53.984157

  print(x.isocalendar()) # 获取当前(年份、周数、工作日)的元组

  # 结果显示(2021, 45, 5)

  print(x.time()) # 获取当前时间-时:分:秒

  # 结果显示19:14:53.984157

  print(x.weekday())

  # 结果显示4

  print(x.isoweekday()) # 获取当前工作日-星期几

  # 结果显示5

  print(x.max) # 获取最大日期时间

  # 结果显示9999-12-31 23:59:59.999999

  print(x.min) # 获取最小日期时间

  # 结果显示0001-01-01 00:00:00

  print(x.resolution) # 获取日期时间的最小单位

  # 结果显示0:00:00.000001

  print(x.timetuple()) # 返回日期对应的time.struct_time对象

  # 结果显示time.struct_time(tm_year=2021, tm_mon=11, tm_mday=13, tm_hour=10, tm_min=16, tm_sec=33, tm_wday=5, tm_yday=317, tm_isdst=-1)

  print(x.utctimetuple()) # 返回日期对应utc的time.struct_time对象

  # 结果显示time.struct_time(tm_year=2021, tm_mon=11, tm_mday=13, tm_hour=10, tm_min=17, tm_sec=46, tm_wday=5, tm_yday=317, tm_isdst=0)

  print(x.toordinal())

  # 结果显示738107

  print(x.isoformat()) # 返回根据 ISO 格式化的时间

  # 结果显示

  2021-11-13T10:23:57.006094

  print(x.ctime()) #返回一个日期时间的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple()))

  # 结果显示Sat Nov 13 10:26:04 2021

  print(x.strftime('%S-%M-%H %d-%m-%Y')) #返回自定义格式化字符串

  # 结果显示31-30-10 13-11-2021

  # -------date类(日期)操作统计-------------------------#

  x2=datetime.date() # 返回一个表示当前本地日期的date对象

  print(x2)

  # 结果显示2021-11-12

  print(x2.year) # 获取最大日期范围

  # 结果显示2021

  print(x2.month) # 获取最大日期范围

  # 结果显示11

  print(x2.day) # 获取最大日期范围

  # 结果显示12

  print(x2.weekday()) # 获取当前工作日-星期几

  # 结果显示4

  print(x2.isoweekday()) # 获取当前工作日-星期几

  # 结果显示5

  print(x2.isocalendar()) # 获取当前(年份、周数、工作日)的元组

  # 结果显示(2021, 45, 5)

  print(x2.isoformat()) # 返回格式如'YYYY-MM-DD’的字符串

  # 结果显示2021-11-12

  print(x2.strftime('%Y--%m--%d')) # 自定义格式化字符串

  # 结果显示2021--11--12

  print(x2.max) # 获取最大日期范围

  # 结果显示9999-12-31

  print(x2.min) # 获取最小日期范围

  # 结果显示0001-01-01

  print(x2.resolution) # 日期的最小单位--天

  # 结果显示1 day, 0:00:00

  x2x=x2.replace(2035,10,10) # 生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性。(原有对象仍保持不变)

  print(x2x)

  # 结果显示2035-10-10

  print(x2)

  # 结果显示2021-11-12

  print(x2x.toordinal()) # 返回日期对应的Gregorian Calendar日期

  # 结果显示743186

  x_time=x2.timetuple() # 返回日期对应的time.struct_time对象

  print(x_time)

  # 结果显示time.struct_time(tm_year=2021, tm_mon=11, tm_mday=13, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=317, tm_isdst=-1)

  print(x_time[1])

  # 结果显示11

  # ---------time类(时间)操作统计-------------#

  x4=datetime.time(12, 23, 34, tzinfo=None)

  print(x4) # 获取指定时间类对象

  # 结果显示12:23:34

  print(x4.hour)

  # 结果显示12

  print(x4.minute)

  # 结果显示23

  print(x4.second)

  # 结果显示34

  print(x4.microsecond)

  # 结果显示0

  print(x4.tzinfo) # 获取时区信息

  # 显示结果None

  print(x4.tzname()) # 返回时区名称

  # 显示结果None

  print(x4.min) # 获取时间类范围内的--最小时间

  # 结果显示00:00:00

  print(x4.max) # 获取时间类范围内的--最大时间

  # 结果显示23:59:59.999999

  print(x4.resolution) # 获取时间的最小单位为1微秒

  # 结果显示0:00:00.000001

  print(x4.isoformat()) # 返回型如"HH:MM:SS"格式的字符串表示

  # 结果显示12:23:34

  print(x4.strftime('%S-%M-%H')) # 返回自定义格式化字符串

  # 结果显示34-23-12

  x4X=datetime.time.replace(x4, 15, 12, 46) # 创建一个新的时间对象,用参数指定的时、分、秒、微秒代替原有对象中的属性(原有对象仍保持不变);

  print(x4X)

  # 结果显示15:12:46

  print(x4)

  # 结果显示12:23:34

  # -----------timedelta类(时间间隔)操作统计---------------#

  datetime class timedelta(SupportsAbs[timedelta])表示两个日期时间对象之间的差异(时间间隔)。支持的加减时间增量,加、减、abs与时间增量比较,乘以除以int此外,datetime 支持两个 datetime 对象的相减返回一个 timedelta,以及一个 datetime 和一个timedelta 的相加或相减给出一个datetime。

  x5=datetime.timedelta(minutes=3.0)

  print(x5)

  # 结果显示0:03:00

  x5x=x_today - x_utcnow #两个 datetime 对象的相减返回一个 timedelta

  print(x_today)

  # 结果显示2021-11-13 10:44:10.671427

  print(x_utcnow)

  # 结果显示2021-11-13 02:44:10.671427

  print(x5x)

  # 结果显示8:00:00

  x5x_x=x_today + x5x + x5x + x5x

  print(x5x_x)

  # 结果显示2021-11-14 12:48:36.736688

  print(datetime.MAXYEAR) # 获取最大年份

  # 结果显示9999

  print(datetime.MINYEAR) # 获取最小年份

  # 结果显示0001

  #------------------tzinfo类(时区)信息操作---------------------#

  datetime class tzinfo时区信息类的抽象基类。这是一个抽象基类,也就是说该类不应被直接实例化。 请定义 tzinfo 的子类来捕获有关特定时区的信息。

  子类必须覆盖 name()、utcoffset() 和 dst() 方法。

  # -----------timezone类---------------#

  # datetime 模块提供了 timezone,这是 tzinfo 的一个简单实体子类

  print(datetime.timezone.max)

  # 结果显示UTC+23:59

  print(datetime.timezone.min)

  # 结果显示UTC-23:59

  print(datetime.timezone.utc)

  # 结果显示UTC

  3、日期格式代码如下:

  %a Weekday,短版本

  %A Weekday,完整版本

  %w Weekday,数字 0-6,0 为周日

  %d 日,数字 01-31

  %b 月名称,短版本

  %B 月名称,完整版本

  %m 月,数字01-12

  %y 年,短版本,无世纪

  %Y 年,完整版本

  %H 小时,00-23

  %I 小时,00-12

  %p AM/PM

  %M 分,00-59

  %S 秒,00-59

  %f 微妙,000000-999999

  %z UTC 偏移

  %Z 时区

  %j 天数,001-366

  %U 周数,每周的第一天是周日,00-53

  %W 周数,每周的第一天是周一,00-53

  %c 日期和时间的本地版本

  %x 日期的本地版本

  %X 时间的本地版本

  %% A % character

  希望以上的总结对你有帮助!!!