Python 的 datetime
模块提供了一系列用于处理日期和时间的类。这些类非常强大且灵活,允许你进行日期和时间的计算、格式化以及解析等操作。以下是这个模块中一些常用的类及其简要介绍:
- datetime.date
- 这个类用于处理日期(年、月、日)。它不包含时间信息。
- 创建实例的示例:
date(year, month, day)
- 常用方法包括:
year
,month
,day
,replace()
,timetuple()
,weekday()
,isoweekday()
,isocalendar()
,strftime()
,strptime()
(虽然是类方法,但常与date
实例一起使用进行解析)等。
- datetime.time
- 这个类用于表示时间(时、分、秒、微秒)。它不包含日期信息。
- 创建实例的示例:
time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
- 常用方法包括:
hour
,minute
,second
,microsecond
,tzinfo
,replace()
,strftime()
,strptime()
(与date
相同,用于解析时间字符串)等。
- datetime.datetime
- 这是最常用的类,结合了
date
和time
的功能,用于表示日期和时间。 - 创建实例的示例:
datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
- 它拥有
date
和time
的所有方法和属性,并且增加了date()
,time()
,timetz()
,timestamp()
,utctimetuple()
,combine(date, time)
,now(tz=None)
,utcnow()
等方法和静态方法。
- 这是最常用的类,结合了
- datetime.timedelta
- 这个类用于表示两个日期或时间之间的差异(天数、秒数、微秒数的组合)。
- 创建实例的示例:
timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
- 常用方法包括:
days
,seconds
,microseconds
,total_seconds()
等。
- datetime.tzinfo
- 这是一个抽象基类,用于实现时区信息。
datetime
和time
类中的tzinfo
参数用于接收此类或其子类的实例,以表示日期或时间所属的时区。 - 由于
tzinfo
是一个抽象基类,通常需要实现其抽象方法(如utcoffset()
,dst()
,tzname()
等)来创建自定义时区类。Python的pytz
库提供了许多现成的时区实现。
- 这是一个抽象基类,用于实现时区信息。
- datetime.timezone
- 这是
tzinfo
的一个具体实现,用于表示UTC时区以及固定偏移量的时区。 - 创建UTC时区的示例:
timezone.utc
- 创建固定偏移量时区的示例:
timezone(timedelta(hours=-5))
- 这是
通过组合使用这些类,你可以执行复杂的日期和时间操作,如计算两个日期之间的差异、将日期时间转换为特定格式的字符串、解析日期时间字符串等。