Python 2.x 中如何使用datetime模块进行日期和时间处理

Python 2.x 中如何使用datetime模块进行日期和时间处理

Python 中的 datetime 模块是 Python 中处理日期和时间的基本模块之一。它提供了各种功能,例如处理日期和时间,计算日期差异和格式化时间戳。

本文将介绍使用 Python 2.x 的 datetime 模块进行日期和时间处理的基本知识和实际应用。

1. datetime 模块介绍

Python 的 datetime 模块定义了下面这些类:

datetime.date:表示日期的类(年、月、日)

datetime.time:表示时间的类(时、分、秒、微秒)

datetime.datetime:表示日期时间的类(年、月、日、时、分、秒、微秒)

datetime.timedelta:表示时间间隔、持续时间或时间差的类

datetime 模块还包含了一些常量,例如 datetime.MINYEAR 和 datetime.MAXYEAR,分别表示最小年份和最大年份。

2. 获取当前日期和时间

获取当前日期和时间可以使用 datetime 模块中的 datetime 类。创建 datetime 对象的方式是调用 datetime 类的构造函数并传递年、月、日、时、分和秒等参数。

import datetime

now = datetime.datetime.now()

print("当前日期和时间:")

print(now)

代码输出:

当前日期和时间:

2022-02-18 15:37:55.523271

如果只需要当前日期(年月日),可以使用 datetime.date 类:

import datetime

today = datetime.date.today()

print("今天日期:")

print(today)

代码输出:

今天日期:

2022-02-18

3. 时间格式化

datetime 模块还提供了一个 strftime 方法,用于将日期时间格式化为字符串。strftime 中的格式化指令以“%”开头,常用的 datetime 格式化指令如下:

指令含义
%a本地缩写星期名称(如,星期一至星期日的缩写为 Mon至 Sun)
%A本地完整星期名称(如,星期一至星期日的名称为 Monday至Sunday)
%b本地缩写的月份名称(如,一月至十二月缩写为 Jan至 Dec)
%B本地完整的月份名称(如,一月至十二月的名称为 January至December)
%c本地相应的日期和时间表示(如,Tue Aug 16 21:30:00 1988)
%d用数字表示日期(如,01至31)
%H用24小时制表示小时数(如,00至23)
%I用12小时制表示小时数(如,01至12)
%j用数字表示一年中的第几天(如,001至366)
%m用数字表示月份(如,01至12)
%M用数字表示分钟数(如,00至59)
%p本地相应的 AM 或 PM 的表示(如,上午为 AM,下午为 PM)
%S用数字表示秒数(如,00至59)
%U用数字表示一年中的星期数,从第一个星期日开始(如,00至53)
%w用数字表示星期几,星期天为 0(如,0至6)
%W用数字表示一年中的星期数,从第一个星期一开始(如,00至53)
%x本地相应的日期表示(如,07/21/98)
%X本地相应的时间表示(如,20:15:00)
%y用数字表示没有世纪的年份(如,88表示1988年)
%Y用数字表示带有世纪的年份(如,1988)
%Z时区名称(如,CST,即中国标准时间)
%%百分号

例如,将当前日期时间格式化为"YYYY-MM-DD HH:MM:SS"格式:

import datetime

now = datetime.datetime.now()

formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")

print("格式化后的日期和时间:")

print(formatted_time)

代码输出:

格式化后的日期和时间:

2022-02-18 15:37:55

4. 计算日期差异

datetime 模块还提供了一个 timedelta 类,用于计算日期差异和持续时间。timedelta 对象的构造函数接受以下参数:

days:天数,可以是正数或负数

seconds:秒数,可以是正数或负数

microseconds:微秒数,可以是正数或负数

milliseconds:毫秒数,可以是正数或负数

minutes:分钟数,可以是正数或负数

hours:小时数,可以是正数或负数

weeks:周数,可以是正数或负数

例如,计算两个日期之间的天数差异:

import datetime

date1 = datetime.date(2022, 2, 1)

date2 = datetime.date(2022, 2, 18)

delta = date2 - date1

print("日期差异为 %d 天" % delta.days)

代码输出:

日期差异为 17 天

5. 应用举例

下面介绍一个简单的应用,用 Python 和 datetime 模块编写一个生成日历的程序。

程序的算法是:给定年份和月份,计算出该月的第一天是星期几,然后根据每个星期的星期几逐行打印日历。

import datetime

# 获取用户输入的年份和月份

year = int(raw_input("请输入年份:"))

month = int(raw_input("请输入月份:"))

# 计算日期差异,从而得出该月的第一天是星期几

first_day = datetime.date(year, month, 1)

weekday_of_first_day = first_day.weekday()

# 打印日历表头

print("日 一 二 三 四 五 六")

# 计算日历表格中的第一个格子应该打印几个空格

print(" " * weekday_of_first_day, end="")

# 打印日历表格中的日期

for day in range(1, 31):

print("%2s " % day, end="")

if (day + weekday_of_first_day) % 7 == 0:

print()

# 如果该月的最后一天是星期六,应该在日历的末尾再添加一行

if day == 30 and (weekday_of_first_day + day) % 7 != 0:

print(" " * (7 - (weekday_of_first_day + day) % 7), end="")

print()

代码输出:

请输入年份:2022

请输入月份:2

日 一 二 三 四 五 六

1 2 3 4 5

6 7 8 9 10 11 12

13 14 15 16 17 18 19

20 21 22 23 24 25 26

27 28 29

运行结果是一个月的日历。这个程序很简单,但是它完整地演示了 datetime 模块的使用。

结论

在 Python 2.x 中,datetime 模块是一个非常方便和有用的工具。它包含了各种方法和类,用于处理日期,时间和时间间隔。此外,它还提供了易于使用的格式化方法,用于将日期时间转换为字符串。如果您需要在 Python 中进行日期和时间处理,datetime 模块是您必须学习的一个模块。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签