Python日期时间模块教程

Python提供了 日期时间 模块以处理日期和时间信息。datetime模块为不同的操作提供了有用的日期和时间相关的日期类型和方法。在本教程中,我们将学习如何使用datetime模块数据类型和方法。

null

导入日期时间模块

为了使用date对象、时间戳等,datetime模块应该用下面的import语句导入。

import datetime

列出datetime模块数据类型、方法

因为datetime模块提供了不同的日期和时间相关的数据类型、方法等,它们可以用dir()方法列出,如下所示。

dir(datetime)
['MAXYEAR', 'MINYEAR', 'builtins', 'cached', 'doc', 'file', 'loader', 'name', 'package', 'spec', 'date', 'datetime', 'datetime_CAPI', 'sys', 'time', 'timedelta', 'timezone', 'tzinfo']

使用now()方法获取当前日期和时间

可以使用datetime提供的now()方法获取当前日期和时间。在下面的示例中,我们将打印当前日期和时间。

import datetimenow = datetime.datetime.now()print(now)

输出格式如下:YYYY-MM-DD HH:MM:SS.ssss,其中也打印毫秒。

2021-01-14 06:27:47.516828

创建具有指定日期和时间的日期对象

datetime模块的datetime对象可用于使用提供的值创建特定日期。所有关于日期时间的信息,如年、月、日、时、分、秒都可以明确地提供。这个 日期时间() 方法用于根据指定的日期和时间值创建datetime对象。

import datetime#Specify year, month and day for datea = datetime.datetime(2021,1,13)#Specify year, month, day, hour, minute, second for date and timeb = datetime.datetime(2021,1,13,12,20,55)

使用strftime()方法格式化日期和时间输出

在处理日期和时间信息时,以不同格式表达或格式化日期和时间信息非常重要。例如,月份可以用月份名称表示,如一月等 strftime() 方法可用于格式化存储在datetime对象中的日期和时间信息。

import datetime

#Specify year, month, day, hour, minute, second for date and time
x = datetime.datetime(2021,1,13,12,20,55)

#Weekday, short version	Wedprint(x.strftime("%a"))

#Weekday, full version	Wednesdayprint(x.strftime("%A"))

#Weekday as a number 0-6, 0 is Sunday	3print(x.strftime("%w"))

#Day of month 01-31	31print(x.strftime("%d"))

#Month name, short version	Decprint(x.strftime("%b"))

#Month name, full version	Decemberprint(x.strftime("%B"))

#Month as a number 01-12	12print(x.strftime("%m"))

#Year, short version, without century	18print(x.strftime("%y"))

#Year, full version	2018print(x.strftime("%Y"))

#Hour 00-23	17print(x.strftime("%H"))#Hour 00-12	05print(x.strftime("%I"))#AM/PM	PMprint(x.strftime("%p"))#Minute 00-59	41print(x.strftime("%M"))#Second 00-59	08print(x.strftime("%S"))#Microsecond 000000-999999	548513print(x.strftime("%f"))#UTC offset	+0100print(x.strftime("%z"))#Timezone	CSTprint(x.strftime("%Z"))#Day number of year 001-366	365print(x.strftime("%j"))#Week number of year, Sunday as the first day of week, 00-53	52print(x.strftime("%U"))#Week number of year, Monday as the first day of week, 00-53	52print(x.strftime("%W"))#Local version of date and time	Mon Dec 31 17:41:00 2018print(x.strftime("%c"))#Local version of date	12/31/18print(x.strftime("%x"))#Local version of time	17:41:00print(x.strftime("%X"))#A % character	%print(x.strftime("%%"))#ISO 8601 year	2018print(x.strftime("%G"))#ISO 8601 weekday (1-7)	1print(x.strftime("%u"))#ISO 8601 weeknumber (01-53)	01print(x.strftime("%V"))

从时间戳获取日期

时间戳是Unix、Linux和BSD系统中常用的日期和时间表示形式。时间戳表示从1970年1月1日开始的总秒数。换句话说,从1970年1月1日00:00开始的总秒数。Linux系统中用于日志和其他操作的时间戳。

import datetimex= datetime.date.fromtimestamp(1529294364)print(x)
2018-06-18

两个日期或时间之间的时间差

这个 时间增量 是datetime模块提供的另一个有用类型。timedelta用于表示两个日期和时间之间的差异。timedelta将差异存储为年、月、日、小时、分钟和秒。两个日期和时间对象之间的时间差可以如下计算。

import datetime

a = datetime.datetime(2021,1,13,12,20,55)b = datetime.datetime(2018,5,23,14,40,15)td = a -bprint(td)

输出包含总天数以及小时、分钟和秒信息。

965 days, 21:40:40
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享