Python 时间日期

前言

本文是一个深入讲解Python 3中处理时间和日期的教程。我们将介绍如何使用Python内置库datetime、time和calendar来操作时间、日期以及时区等方面的概念。

Python datetime模块

datetime模块提供了多种类型来支持对日期和时间的操作。下面是一些主要的类:

  • datetime.date: 表示一个理想化的日期,精确到天。包含年、月、日三个属性。
  • datetime.time: 表示一个理想化的时间,精确到微秒。包含时、分、秒、微秒和时区信息(如果需要)。
  • datetime.datetime: 表示一个理想化的日期和时间,包含年、月、日、时、分、秒、微秒等属性。
  • datetime.timedelta: 表示两个datetime对象之间的持续时间。
  • datetime.tzinfo: 用来处理时区相关信息。

datetime.date类

创建一个date对象:

from datetime import date
d = date(2019, 12, 31)
print(d) # Outputs: 2019-12-31

获取当前日期:

today = date.today()
print("Today's date is", today)

datetime.time类

创建一个time对象:

from datetime import time
a = time(13, 45, 20)
print(a) # Outputs: 13:45:20

datetime.datetime类

创建一个datetime对象:

from datetime import datetime
dt = datetime(2019, 12, 31, 13, 45, 20)
print(dt) # Outputs: 2019-12-31 13:45:20

获取当前日期和时间:

now = datetime.now()
print("Current date and time is", now)

datetime.timedelta类

创建一个timedelta对象,表示两个天之间的持续时间:

from datetime import timedelta
delta = timedelta(days=5, hours=2, minutes=30)
print(delta) # Outputs: 5 days, 2:30:00

Python time模块

time模块提供了很多有用的时间相关函数。例如:

  • time.time(): 返回自1970年1月1日以来经过的秒数,称为时间戳。
  • time.sleep(secs): 让程序休眠指定的秒数。
  • time.strftime(format, struct_time): 按照指定的格式将struct_time对象转换成字符串。
  • time.localtime([secs]): 将一个时间戳转换为当地时间的struct_time对象,如果没有提供参数则使用当前时间。

Python calendar模块

calendar模块提供了很多与日期相关的函数和类。例如:

  • calendar.month(year, month): 返回指定年月的日历字符串。
  • calendar.isleap(year): 判断给定的年份是否为闰年。
  • calendar.weekday(year, month, day): 返回给定日期对应的星期数,周一是0,周日是6。

结语

本文介绍了Python处理时间和日期的基础知识,涉及到datetime、time和calendar三个主要模块。希望通过这篇教程,读者能够更加灵活地使用Python来操作时间和日期。