Python日期模块datetime

1.概述

Python中的日期不是其自身的数据类型,我们可以导入名为datetime的模块,把日期当做日期对象处理。

1.1 全部模块

datetime包括以下类/函数:


全部模块

1.2 常用模块

类名 功能说明
date 日期对象,常用的属性有year, month, day
time 时间对象
datetime 日期时间对象,常用的属性有hour, minute, second, microsecond
timedelta 时间间隔,即两个时间点之间的长度
tzinfo 时区信息对象

1.3 常量

常量 功能说明 用法 返回值
MAXYEAR 返回能表示的最大年份 datetime.MAXYEAR 9999
MINYEAR 返回能表示的最小年份 datetime.MINYEAR 1

datetime.py文件中有如下定义:

MINYEAR = 1
MAXYEAR = 9999
_MAXORDINAL = 3652059  # date.max.toordinal()

2. 模块详解

2.1 datetime

datetime模块初始化代码如下:

class datetime(date):
    """datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])

    The year, month and day arguments are required. tzinfo may be None, or an
    instance of a tzinfo subclass. The remaining arguments may be ints.
    """
    __slots__ = date.__slots__ + time.__slots__

    def __new__(cls, year, month=None, day=None, hour=0, minute=0, second=0,
                microsecond=0, tzinfo=None, *, fold=0):

示例:

# 导入日期模块
import datetime

# 显示当前日期:2019-08-14 12:52:55.817273
x = datetime.datetime.now()
print(x)

# 创建日期对象:
import datetime
x = datetime.datetime(2020, 5, 17)
print(x)

# 显示月份的名称:
import datetime
x = datetime.datetime(2019, 10, 1)
print(x.strftime("%B"))

所有合法格式代码的参考:

指令 描述 实例
%a Weekday,短版本 Wed
%A Weekday,完整版本 Wednesday
%w Weekday,数字 0-6,0 为周日 3
%d 日,数字 01-31 31
%b 月名称,短版本 Dec
%B 月名称,完整版本 December
%m 月,数字01-12 12
%y 年,短版本,无世纪 18
%Y 年,完整版本 2018
%H 小时,00-23 17
%I 小时,00-12 05
%p AM/PM PM
%M 分,00-59 41
%S 秒,00-59 08
%f 微妙,000000-999999 548513
%z UTC 偏移 +0100
%Z 时区 CST
%j 天数,001-366 365
%U 周数,每周的第一天是周日,00-53 52
%W 周数,每周的第一天是周一,00-53 52
%c 日期和时间的本地版本 Mon Dec 31 17:41:00 2018
%x 日期的本地版本 12/31/18
%X 时间的本地版本 17:41:00
%% A % character %

2.2 timedelta

timedelta类是用来计算二个datetime对象的差值。
此类中包含如下属性:
1、days:天数
2、microseconds:微秒数(>=0 并且 <1秒)
3、seconds:秒数(>=0 并且 <1天)
初始化代码如下:

class timedelta:
    """Represent the difference between two datetime objects.

    Supported operators:

    - add, subtract timedelta
    - unary plus, minus, abs
    - compare to timedelta
    - multiply, divide by int

    In addition, datetime supports subtraction of two datetime objects
    returning a timedelta, and addition or subtraction of a datetime
    and a timedelta giving a datetime.

    Representation: (days, seconds, microseconds).  Why?  Because I
    felt like it.
    """
    __slots__ = '_days', '_seconds', '_microseconds', '_hashcode'

    def __new__(cls, days=0, seconds=0, microseconds=0,
                milliseconds=0, minutes=0, hours=0, weeks=0):
        # Doing this efficiently and accurately in C is going to

示例:

# 可用变量单位:days=0, seconds=0, microseconds=0,milliseconds=0, minutes=0, hours=0, weeks=0

# Out[37]: datetime.datetime(2020, 9, 29, 10, 49, 38, 755711)
datetime.datetime.today() + datetime.timedelta(days=-1)

# Out[36]: datetime.datetime(2020, 9, 30, 9, 48, 42, 363677)
datetime.datetime.today() + datetime.timedelta(hours=-1)


你可能感兴趣的:(Python日期模块datetime)