Python datetime库如何使用

1. datetime 库概述

以不同格式显示日期和时间是程序中最常用到的功能。Python 提供了一个处理时间的标准函数库 datetime,它提供了一系列由简单到复杂的时间处理方法。

datetime 库可以从系统中获得时间,并以用户选择的格式输出。

datetime 库以格林威治时间为基础,每天由 3600X24 秒精准定义。该库包括两个常量:datetime.MINYEAR 与 datetime.MAXYEAR,分别表示 datetime 所能表示的最小、最大年份,值分别为 1 与 9999。

Python的Datetime库:解放时间的魔杖

datetime 库以类的方式提供多种日期和时间表达方式。

(1) datetime.date:日期表示类,可以表示年、月、日等。(2) datetime.time:时间表示类,可以表示小时、分钟、秒、毫秒等。(3) datetime.dateime:日期和时间表示的类,功能覆盖 date 和 time 类。(4) datetime.timedelta: 与时间间隔有关的类。(5) datetime.tzinfo:与时区有关的信息表示类。

由于 datetime.daetime 类表达形式最为丰富,这里主要介绍这个类的使用。使用 datetime 类需要用 import 保留字,引用 datetime类的方式如下:

from datetime import datetime 2. 拓展: 1970年1月1日

当代计算机系统都有一个计时功能,能够输出从格林威治标准时间 1970 年 1 月 1 日 00:00:00 开始到当下的时间计数,精确到秒,这是 UNIX 操作系统早期的设计习惯,后沿用到所有计算机系统中。

现在的计算机硬件和系统都是 64 位,如果用 64 位存储这个时间计数则最大可以表示距离 1970 年 1 月 1 日开始的 264 秒,1 年 365 天的总秒数约为 1.9x224 ,因此,64 位计算机系统可以将时间表示到约公元 239 年,相信我们的 N 代子孙,哪怕到地球毁灭那天都不用担心时间不准确了。

&
mdash;
&
mdash;
为什么选择从 1970 年 1 月 1 日开始? &
mdash;
&
mdash;
无论选择从哪天开始, 都会有同样的问题, 不是吗?

3. datetime 库解析

datetime 类 ( datetime.datetime 类,以下简称为 datetime 类) 的使用方式是首先创建一个 datetime 对象,然后通过对象的方法和属性显示时间。创建 datetime 对象有3种方法:datetime.now()、 datetime.utcnow() 和 datetime.datetime()。

1.使用 datetime.now() 获得当前日期和时间对象,使用方法如下:

datetime.now()

作用:返回一个 datetime 类型,表示当前的日期和时间,精确到微秒。 参数:无 调用该函数,执行结果如下:

from datetime import datetime
today = datetime.now()
print(today)

2022-05-01 20:32:41.772021

2.使用 datetime utcnow() 获得当前日期和时间对应的 UTC (世界标准时间) 时间对象,使用方法如下:

datetime.utcnow ()

作用:返回一个 datetime 类型,表示当前日期和时间的 UTC 表示,精确到微秒。 参数:无 调用该函数,执行结果如下:

from datetime import datetime
today = datetime.utcnow()
print(today)

2022-05-01 12:35:40.849860

3.datetime.now() 和 datetime utcnow() 都返回一个 datetime 类型的对象,也可以直接使用 datetime() 构造一个日期和时间对象, 使用方法如下:

datetime (year, month, day, hour=0, minute=0,second=0, microsecond=0)

作用:返回一个 datetime 类型,表示指定的日期和时间,可以精确到微秒。

参数如下:

year:指定的年份,MINYEAR <
= year <
= MAXYEAR

month:指定的月份,1 <
= month <
= 12

day:指定的日期,1 <
= day <
=月份所对应的日期上限

hour:指定的小时,0 <
= hour <
24

minute:指定的分钟数,0 <
= minute <
60

second:指定的秒数,0 <
= second <
60

microsecond:指定的微秒数,0 <
= microsecond <
1000000

其中,hour、minute、second、microsecond 参数可以全部或部分省略。

调用 datetime() 函数直接创建一个 datetime 对象,表示 2022 年 5 日 1 日 20:33,32 秒 7 微妙,执行结果如下:

from datetime import datetime
someday = datetime(2022, 5, 1, 20, 43, 32, 7)
print(someday)

2022-05-01 20:43:32.000007

到此,程序已经有了一个 datetime 对象,进一步可以利用这个对象的属性显示时间,为了区别 datetime 库名,采用上例中的 someday 代替生成的 datetime 对象,常用属性如下表所示。

属性描述someday.min固定返回 datetime 的最小时间对象,datetime(1,1,1,0,0)someday.max固定返回 datetime 的最大时间对象,datetime(9999,12,31,23,59,59,59,999999)someday.year返回 someday 包含的年份someday.month返回 someday 包含的月份someday.day返回 someday 包含的日期someday.hour返回 someday 包含的小时someday.minute返回 someday 包含的分钟someday.second返回 someday 包含的秒钟someday.microsecond返回 someday 包含的微妙值

datetime 对象有 3 个常用的时间格式化方法,如下表所示

属性描述someday.isoformat()采用 ISO 8601 标准显示时间someday.isoweekday()根据日期计算星期后返回 1~7,对应星期一到星期日someday.strftime(format)根据格式化字符串 format 进行格式显示的方法

isoformat() 和 isoweekday() 方法的使用如下:

from datetime import datetime
today = datetime.now()
print(today.isoformat())
print(today.isoweekday())

程序执行结果如下:

2022-05-01T21:00:28.3923047

strftime() 方法是时间格式化最有效的方法,几乎可以以任何通用格式输出时间。例如下面的例子,用该方法输出特定格式时间。

from datetime import datetime
today = datetime.now()
print(today.strftime("
%Y-%m-%d %H : %M : %S"
))

程序执行结果如下:

2022-05-01 21 : 04 : 23

下表是 strftime() 方法的格式化控制符。

格式化字符串日期/时间值范围和实例%Y年份0001~9999%m月份01~12%B月名January~December%b月名缩写Jan~Dec%d日期01~31%A星期Monday~Sunday%a星期缩写Mon~Sun%H小时(24 h 制)00~23%M分钟00~59%S秒00~59%x日期月/日/年,例如,01/01/2022%X时间时 :分:秒,例如,19 : 09 : 31

strftime() 格式化字符串的数字左侧会自动补零,上述格式也可以与 print() 的格式化函数起使用,例如:

from datetime import datetime

now = datetime.now()

print(now.strftime("
%Y- %m- %d"
))

print(now.strftime("
%A,%d. %B %Y %H: %M%p"
))

print("
今天是 {0:%Y} 年 {0:%m} 月 {0:%d} 日"
.format(now))

程序执行结果如下:

2022- 05- 01Sunday,01. May 2022 21: 21PM今天是 2022 年 05 月 01 日

datetime 库主要用于对时间的表示,从格式化角度掌握 strftime() 函数已经能够处理很多情况了。建议读者在遇到需要处理时间的问题时采用 datetime 库,简化格式输出和时间的维护。



Python是一种优秀的编程语言,它非常强大而充满了各种实用功能。在这些功能当中,Datetime库是最为重要的之一。Datetime库可以让Python使用者轻松处理各种日期和时间相关的需求,并对数据进行快速、高效、精确的操作和计算。本文就为大家详细介绍一下Python的Datetime库的使用方法。
一、Datetime库的介绍
Datetime库是Python语言自带的时间和日期处理库。它提供了许多有用的类和函数,方便我们在程序中进行对时间的处理。Datetime库中包含了datetime, date, time, timedelta, tzinfo等多个模块,其中datetime是最为重要的一个模块。通过Datetime库,我们可以方便地进行时间的运算、格式化、解析等操作。
二、Datetime库的常用功能
1. 获取当前时间
获取当前时间可以使用datetime模块中的datetime.now()函数,这个函数可以返回一个datetime类型的对象,其中包含了当前的年、月、日、时、分、秒、微秒以及时区等信息。
2. 时间格式化和解析
在处理时间时,通常需要将时间转换为不同的格式,或者从特定格式的时间字符串中解析出时间。Python的Datetime库提供了一套强大的格式化指令,可以帮助我们轻松地完成这些任务。
3. 时间计算
Datetime库提供了timedelta类,它可以用来计算两个日期或时间之间的差值,从而得到时间间隔。
4. 时区处理
Datetime库支持时区处理,可以将本地时间转换为各种时区的时间,方便进行跨时区的计算和处理。
5. 日历操作
Datetime库中的calendar模块可以帮助我们操作日历,包括获取某个月份的日历、计算星期几的日期等。
三、Datetime库的使用实例
以下是本文的一个示例程序,它演示了如何使用Datetime库进行时间处理。
```
import datetime
# 获取当前时间
now = datetime.datetime.now()
print(\"当前时间为:\", now)
# 时间格式化
formatted_time = now.strftime(\"%Y-%m-%d %H:%M:%S\")
print(\"格式化后的时间为:\", formatted_time)
# 时间解析
parsed_time = datetime.datetime.strptime(formatted_time, \"%Y-%m-%d %H:%M:%S\")
print(\"解析后的时间为:\", parsed_time)
# 时间计算
delta = datetime.timedelta(days=1)
tomorrow = now + delta
print(\"明天的时间为:\", tomorrow)
# 时区处理
utc_now = datetime.datetime.utcnow()
print(\"当前UTC时间为:\", utc_now)
shanghai_tz = datetime.timezone(datetime.timedelta(hours=8), \"Asia/Shanghai\")
shanghai_time = datetime.datetime.now(tz=shanghai_tz)
print(\"上海时间为:\", shanghai_time)
# 日历操作
calendar = datetime.datetime.now().month
print(\"当前月日历为:\", calendar)
```
四、总结
本文介绍了Python中Datetime库的常用功能以及用法,并提供了一个使用实例,希望能够对您在实际开发中处理时间相关的需求有所帮助。Datetime库功能强大,使用也相对容易上手,建议在日常编程中多多使用,慢慢掌握其技能,开启时间的魔法之旅。