datetime 时间和日期模块

datetime 模块提供了以简单和复杂的方式操作日期和时间的类。虽然支持日期和时间算法,但实现的重点是有效的成员提取以进行输出格式化和操作。该模块还支持可感知时区的对象。
本文主要介绍datetime库的一些基本的使用方法。


timestamp:时间戳,指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数

utc:世界协调时间(Universal Time Coordinated,UTC)
GPS 系统中有两种时间区分,一为UTC,另一为LT(地方时),两者的区别为时区不同,UTC就是0时区的时间,地方时为本地时间,如北京为早上八点(东八区),UTC时间就为零点,时间比北京时晚八小时,以此计算即可。

1. 常用用法

datetime库中定义的几个类:

类名称 描述 常用属性
datetime.date 表示日期 year, month, day
datetime.time 表示时间 hour, minute, second, microsecond
datetime.datetime 表示日期和时间 year, month, day, hour, minute, microsecond
datetime.timedelta 表示两个日期时间之间的差 days, hours, seconds
datetime.tzinfo 描述时区信息对象的抽象基类 上网查找
datetime.timezone 时区,表示与UTC的固定偏移量 datetime.timedelta对象

导入:

import datetime as datet
from datetime import date, time, datetime, timedelta, timezone

常量:

常量 描述
datetime.MINYEAR datedatetime 对象允许的最小年份 1
datetime.MAXYEAR datedatetime 对象允许最大的年份 9999

1.1 datetime.date

date 对象代表一个理想化历法中的日期(年、月和日),即当今的格列高利历向前后两个方向无限延伸。

from datetime import date

实例化一个date对象:

d = date(year=2021,month=1,day=1)	#一种方法
d = date(2021,1,1) #更简单一些

date类的方法和属性:

方法和属性 描述
date.max date类所能表示的最大日期
date.min date类所能表示的最小日期
date.resolution 日期的最小单位,即两个不同日期的最小差值,返回timedelta对象
date.today() 获取今天的日期
date.fromtimestamp(timestamp) 时间戳获取日期
date.fromisoformat(‘xxxx-xx-xx’) 将特定格式日期字符串转换为date对象
date.fromisocalendar(year,week,weekday) 以年、一年中第几个星期、星期几获取日期
date.fromordinal(int) 用0001-01-01至该日期的天数获取日期

date对象的方法和属性:

方法和属性 描述
d.year 获取年
d.month 获取月
d.day 获取日
d.weekday() 获取该日期是星期几,范围0~6,0表示星期一
d.isoweekday() 获取该日期是星期几,范围1~7,1表示星期一
d.replace(year[,month[,day]]) 生成并返回一个新的日期对象,原日期对象不变
d.ctime() 返回一个表示日期的字符串
d.isoformat() 返回该日期的’xxxx-xx-xx’字符串格式
d.isocalendar() 返回该日期的(year,week,weekday)元组格式
d.timetuple() 返回该日期对应的time.struct_time对象
d.toordinal() 返回从0001-01-01至该日期的天数
d.strftime(format) 返回指定格式的日期字符串

示例:

>>> from datetime import date	#导入date模块

>>> import time
>>> stamptime = time.time() #导入time库获取时间戳 >>> date.today() #获取当天时间
datetime.date(2021, 6, 26)
>>> date.max #获取date类所能表示的最大日期
datetime.date(9999, 12, 31)
>>> date.min #获取date类所能表示的最小日期
datetime.date(1, 1, 1)
>>> date.resolution #获取日期间隔的最小单位
datetime.timedelta(days=1)
>>> date.fromtimestamp(time.time()) #用时间戳获取日期
datetime.date(2021, 6, 26)
>>> date.fromisoformat('2021-01-01') #用'xxxx-xx-xx'格式字符串获取日期
datetime.date(2021, 1, 1)
>>> date.fromisocalendar(2020,1,3) #以年、一年中第几个星期、星期几获取日期
datetime.date(2020, 1, 1)
>>> date.fromordinal(737425) #用0001-01-01至该日期的天数获取日期
datetime.date(2020, 1, 1) >>> d = date(2020,1,1) #生成日期
>>> d
datetime.date(2020, 1, 1)
>>> print(d) #注意打印出来的日期会自动安排格式
2020-01-01
>>> d.year #获取年
2020
>>> d.month #获取月
1
>>> d.day #获取日
1
>>> d.replace(1949,10,1) #生成并返回一个新的日期对象,原日期对象不变
datetime.date(1949, 10, 1)
>>> d #原日期对象不变
datetime.date(2020, 1, 1)
>>> d.ctime() #返回一个表示日期的字符串
'Wed Jan 1 00:00:00 2020'
>>> d.weekday() #对应星期几,范围0~6
2
>>> d.isoweekday() #对应星期几,范围1~7
3
>>> d.isoformat() #返回该日期的'xxxx-xx-xx'字符串格式
'2020-01-01'
>>> d.isocalendar() #返回该日期的(year,week,weekday)元组格式
(2020, 1, 3)
>>> d.timetuple() #返回该日期对应的time.struct_time对象
time.struct_time(tm_year=2020, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=1, tm_isdst=-1)
>>> d.toordinal() #返回从0001-01-01至该日期的天数
737425
>>> d.strftime('date:%Y/%m/%d') #返回指定格式的日期字符串,其中可放置字符串和模块内其他格式字符(见文末),好像不能有中文
'date:2020/01/01'

1.2 datetime.time

一个 time 对象代表某日的(本地)时间,它独立于任何特定日期,并可通过 tzinfo 对象来调整。

import datetime as datet
from datetime import time, timedelta, timezone

实例化一个time对象:

t = time(hour=12,minute=30,second=55,tzinfo=timezone.utc)	#制定时区实例化一个time对象,tzinfo可选
t = time(12,30,55) #简略一些

time类的方法和属性:

方法和属性 描述
time.max time类所能表示的最大时间
time.min time类所能表示的最小时间
time.resolution 时间的最小单位,即两个不同时间的最小差值,返回timedelta对象
time.fromisoformat(xx:xx:xx) 将特定格式时间字符串转换为time对象

time对象的方法和属性:

方法和属性 描述
t.hour 获取时
t.minute 获取分
t.second 获取秒
t.microsecond 获取微秒
t.tzinfo 获取时区信息
t.tzname() 获取时区名称
t.utcoffset() 获取与utc时区的时间偏移量,为timedelta对象
t.isoformat() 返回该日期时间的’xx:xx:xx’字符串格式,如果该时间相比utc有偏移,即有指定时区,则会附上偏移量。
t.replace([,hour[, minute[, second[, microsecond[, tzinfo]]]]]) 生成并返回一个新的time对象,原对象不变
t.strftime(format) 返回指定格式的时间字符串

示例:

>>> import datetime as datet		#导入库和模块
>>> from datetime import time, timedelta, timezone >>> time.max #time类所能表示的最大时间
datetime.time(23, 59, 59, 999999)
>>> time.min #time类所能表示的最大时间
datetime.time(0, 0)
>>> time.resolution #时间的最小单位,即两个不同时间的最小差值,返回timedelta对象
datetime.timedelta(microseconds=1)
>>> time.fromisoformat('12:30:55') #将特定格式时间字符串转换为time对象
datetime.time(12, 30, 55) >>> t = time(12,30,55,tzinfo=timezone.utc) #指定时区实例化一个time对象
>>> t
datetime.time(12, 30, 55, tzinfo=datetime.timezone.utc)
>>> print(t)
12:30:55+00:00 #注意打印出来的会自动格式化,如果指定了时区则附上偏移量
>>> t.hour #获取时
12
>>> t.minute #获取分
30
>>> t.second #获取秒
55
>>> t.microsecond #获取微秒
0
>>> t.tzinfo #获取时区信息
datetime.timezone.utc
>>> t.tzname() #获取时区名称
'UTC'
>>> t.utcoffset() #获取偏移量
datetime.timedelta(0)
>>> t.isoformat() #用特定格式字符串获取时间
'12:30:55+00:00'
>>> t.replace(9,30) #生成并返回一个新的time对象,原对象不变
datetime.time(9, 30, 55, tzinfo=datetime.timezone.utc)
>>> t.strftime('time:%H:%M:%S') #返回指定格式的时间字符串
'time:12:30:55'

1.3 datetime.datetime

datetime 对象是包含来自 date 对象和 time 对象的所有信息的单一对象。

import datetime as datet
from datetime import datetime, timezone

实例化一个datetime对象:

dt = datetime(year=2021,month=1,day=1,hour=12,minute=30,second=55)	#实例化
dt = datetime(2021,1,1,12,30,55) #更加简单一些
dt = datetime(2021,1,1,12,30,55,tzinfo=timezone.utc) #指定时区的方法

datetime类的方法和属性:

方法和属性 描述
datetime.max datetime类所能表示的最大日期时间
datetime.min datetime类所能表示的最小日期时间
datetime.resolution 时间的最小单位,即两个不同时间的最小差值,返回timedelta对象
datetime.today() 获取当前日期和时间
datetime.now(tz) 获取指定时区的当前日期时间,如果不指定tz参数则结果同上
datetime.utcnow() 获取当前utc日期时间
datetime.fromtimestamp(timestamp[, tz]) 时间戳获取时间
datetime.utcfromtimestamp(timestamp) 时间戳获取utc时间
datetime.combine(date, time) 合并datetime对象
datetime.strptime(‘datetime’,format) 将时间字符串转换为datetime对象

datetime对象的方法和属性:

方法和属性 描述
dt.year 获取年
dt.month 获取月
dt.day 获取日
dt.hour 获取时
dt.minute 获取分
dt.second 获取秒
dt.microsecond 获取微秒
dt.date() 获取datetime对象对应的date对象
dt.time() 获取datetime对象对应的time对象,tzinfo为None
dt.tzinfo 获取时区信息
dt.tzname() 获取时区名称
dt.utcoffset() 获取与UTC时区的时间偏移量,为timedelta对象
dt.timetz() 获取datetime对象对应的time对象和tzinfo
dt.ctime() 返回一个表示日期的字符串
dt.weekday() 获取该日期是星期几,范围0~6,0表示星期一,同date
dt.isoweekday() 获取该日期是星期几,范围1~7,1表示星期一,同date
dt.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]]) 生成并返回一个新的datetime对象,原对象不变
dt.astimezone(tz) 生成并返回一个新的datetime对象,改变其tzinfo,原对象不变
dt.dst() 根据datetime对象的tzinfo,返回是否夏令时
dt.isoformat(sep,timespec) 返回该日期时间的’xxxx-xx-xx xx:xx:xx’字符串格式,sep为日期和时间间的分隔符,默认为T,timespec为时间部分显示模式选择(参见示例),如果该时间相比utc有偏移,即有指定时区,则会附上偏移量。
dt.isocalendar() 返回该日期时间的(year,week,weekday)元组格式,同date
dt.timetuple() 返回该日期时间对应的time.struct_time对象(不包括tzinfo)
dt.utctimetuple() 返回该日期时间对应的utc时区time.struct_time对象(不包括tzinfo)
dt.toordinal() 返回从0001-01-01至该日期的天数,同date
dt.strftime(format) 返回指定格式的日期时间字符串

示例:

>>> import datetime as datet		#导入库和模块
>>> from datetime import datetime, timezone >>> datetime.max #datetime类所能表示的最大日期时间
datetime.datetime(9999, 12, 31, 23, 59, 59, 999999)
>>> datetime.min #datetime类所能表示的最小日期时间
datetime.datetime(1, 1, 1, 0, 0)
>>> datetime.resolution #时间的最小单位,即两个不同时间的最小差值,返回timedelta对象
datetime.timedelta(microseconds=1)
>>> datetime.today() #获取当前日期和时间
datetime.datetime(2021, 6, 27, 8, 2, 19, 708118)
>>> datetime.now() #获取当前日期时间
datetime.datetime(2021, 6, 27, 8, 2, 31, 65767)
>>> datetime.now(tz=timezone(timedelta(hours=8))) #获取指定时区的当前日期时间
datetime.datetime(2021, 6, 27, 8, 3, 50, 882333, tzinfo=datetime.timezone(datetime.timedelta(seconds=28800)))
>>> datetime.utcnow() #获取当前utc日期时间
datetime.datetime(2021, 6, 27, 0, 6, 19, 706845) #可以看到,utc时间与我们北京时间是差了八个小时的
>>>datetime.fromtimestamp(1624753068.8182602,tz=timezone(timedelta(hours=8))) #用时间戳获取时间,指定时区
datetime.datetime(2021, 6, 27, 8, 17, 48, 818260, tzinfo=datetime.timezone(datetime.timedelta(seconds=28800)))
>>> datetime.utcfromtimestamp(1624753068.8182602) #用时间戳获取utc时间
datetime.datetime(2021, 6, 27, 0, 17, 48, 818260) #差了八个小时
>>> datetime.fromisocalendar(2020, 53, 5) #以年、一年中第几个星期、星期几获取日期
datetime.datetime(2021, 1, 1, 0, 0)
>>> datetime.fromisoformat('2021-01-01T12:30:55') #用特定格式字符串获取时间,注意日期和时间中间用T连接
datetime.datetime(2021, 1, 1, 12, 30, 55)
>>> datetime.fromordinal(737791) #用0001-01-01至该日期的天数获取日期
datetime.datetime(2021, 1, 1, 0, 0)
>>> d = date(2021,1,1)
>>> t = time(12,30,50)
>>> datetime.combine(d,t,tzinfo=timezone(timedelta(hours=8))) #用combine合并日期和时间,如果不指定时区则使用time的时区
datetime.datetime(2021, 1, 1, 12, 30, 50, tzinfo=datetime.timezone(datetime.timedelta(seconds=28800)))
>>> datetime.strptime('date:2021-01-01,time:12:30:50','date:%Y-%m-%d,time:%H:%M:%S') #字符串转时间
datetime.datetime(2021, 1, 1, 12, 30, 50) >>> dt = datetime(2021,1,1,12,30,55,tzinfo=timezone.utc) #带时区实例化一个datetime
>>> dt
datetime.datetime(2021, 1, 1, 12, 30, 55, tzinfo=datetime.timezone.utc)
>>> print(dt)
2021-01-01 12:30:55+00:00 #注意打印出来的会自动格式化,如果指定了时区则附上偏移量
>>> dt.year #以下是获取年、月、日、时、分、秒、微秒
2021
>>> dt.month
1
>>> dt.day
1
>>> dt.hour
12
>>> dt.minute
30
>>> dt.second
55
>>> dt.microsecond
0
>>> dt.date() #获取datetime对象对应的date对象
datetime.date(2021, 1, 1)
>>> dt.time() #获取datetime对象对应的time对象
datetime.time(12, 30, 55)
>>> dt.tzinfo #获取时区信息
datetime.timezone.utc
>>> dt.tzname() #获取时区名称
'UTC'
>>> dt2 = datetime(2021,1,1,12,59,59,tzinfo=timezone(timedelta(hours=8),name='Beijing')) #自定义时区名称
>>> dt2.tzname() #获取时区名称
'Beijing'
>>> dt2.utcoffset() #获取偏移量
datetime.timedelta(seconds=28800)
>>> dt.timetz() #获取datetime对象对应的time对象和tzinfo
datetime.time(12, 30, 55, tzinfo=datetime.timezone.utc)
>>> dt.ctime()
'Fri Jan 1 12:30:55 2021'
>>> dt.weekday() #获取该日期是星期几,范围0~6,0表示星期一,同date
4
>>> dt.isoweekday() #获取该日期是星期几,范围1~7,1表示星期一,同date
5
>>> dt.replace(1949,10,1) #生成并返回一个新的datetime对象,原对象不变
datetime.datetime(1949, 10, 1, 12, 30, 55, tzinfo=datetime.timezone.utc)
>>> dt.astimezone(tz=timezone(timedelta(hours=8))) #生成并返回一个新的datetime对象,改变其tzinfo,原对象不变
datetime.datetime(2021, 1, 1, 20, 30, 55, tzinfo=datetime.timezone(datetime.timedelta(seconds=28800)))
>>> dt.isoformat() #返回该日期时间的'xxxx-xx-xx xx:xx:xx'字符串格式,sep为日期和时间间的分隔符,默认为T,timespec为时间部分显示模式选择
'2021-01-01T12:30:55+00:00'
>>> dt.isoformat(sep=' ',timespec='minutes') #timespec为时间部分显示模式选择,如果该时间相比utc有偏移,即有指定时区,则会附上偏移量。
'2021-01-01 12:30+00:00'
'''
timespec参数及其format
auto:根据time对象的时间内容,自动选择模式
hours:HH
minutes:HH:MM
seconds:HH:MM:SS
microseconds:HH:MM:SS.ffff
milliseconds:HH:MM:SS.sss
注:除了milliseconds,其他模式,如果出现了时间偏移量offsetime,则需要加上偏移量
'''
>>> dt.isocalendar() #返回该日期时间的(year,week,weekday)元组格式,同date
(2020, 53, 5)
>>> dt.timetuple() #返回该日期时间对应的time.struct_time对象(不包括tzinfo)
time.struct_time(tm_year=2021, tm_mon=1, tm_mday=1, tm_hour=12, tm_min=30, tm_sec=55, tm_wday=4, tm_yday=1, tm_isdst=-1)
>>> dt.utctimetuple() #返回该日期时间对应的utc时区time.struct_time对象(不包括tzinfo)
time.struct_time(tm_year=2021, tm_mon=1, tm_mday=1, tm_hour=12, tm_min=30, tm_sec=55, tm_wday=4, tm_yday=1, tm_isdst=0)
>>> dt.toordinal() #返回从0001-01-01至该日期的天数,同date
737791
>>> dt.strftime('date:%Y-%m-%d,time:%H:%M:%S') #返回指定格式的日期字符串,其中可放置字符串和模块内其他格式字符(见文末),好像不能有中文
'date:2021-01-01,time:12:30:55'

1.4 datetime.timedelta

timedelta 对象表示两个 date 或者 time 的时间间隔。

import datetime as datet
from datetime import date, time, datetime, timedelta, timezone

timedelta 类的参数:

参数 含义
days
seconds
microseconds 微秒
milliseconds 毫秒
minutes 分钟
hours 小时
weeks

所有参数都可选,可为int、float和正数、负数。内部值只存储days、seconds 和 microseconds,因此其他所有参数的单位都会被转换:

  • 1毫秒 转换为 1000微秒: 1milliseconds = 1000microseconds

  • 1分钟 转换为 60秒: 1minutes = 60seconds

  • 1小时 转换为 3600秒: 1hours = 3600seconds

  • 1星期 转换为 7天: 1weeks = 7days

实例化一个timedelta对象:

delta = timedelta(days=10,seconds=5,microseconds=5555,minutes=30,hours=12,weeks=2)

timedelta类的方法和属性:

方法和属性 描述
timedelta.max timedelta类所能表示的最大时间间隔
timedelta.min timedleta类所能表示的最小时间间隔
timedelta.resolution timedelta类所能表示的时间间隔的最小单位

timedelta对象的方法和属性:

方法和属性 描述
delta.days 获取timedelta对象经过单位换算后的总天数
delta.seconds 获取timedelta对象经过单位换算后的总秒数
delta.microseconds 获取timedelta对象经过单位换算后的总微秒数
delta.total_seconds() 获取timedelta对象包含的总秒数

使用timedelta对象可以对日期、时间进行求差、加减、比较等操作。
示例:

>>> import datetime as datet
>>> from datetime import datetime, timedelta >>> timedelta.max #timedelta类所能表示的最大时间间隔
datetime.timedelta(days=999999999, seconds=86399, microseconds=999999)
>>> timedelta.min #timedleta类所能表示的最小时间间隔
datetime.timedelta(days=-999999999)
>>> timedelta.resolution #timedelta类所能表示的时间间隔的最小单位
datetime.timedelta(microseconds=1)
>>> delta = timedelta(days=10,seconds=5,microseconds=5555,minutes=30,hours=12,weeks=2) #实例化一个timedelta对象
>>> delta
datetime.timedelta(days=24, seconds=45005, microseconds=5555)
>>> print(delta) #注意打印出来的会自动格式化
24 days, 12:30:05.005555
>>> delta.days #获取timedelta对象经过单位换算后的总天数
24
>>> delta.seconds #获取timedelta对象经过单位换算后的总秒数
45005
>>> delta.microseconds #获取timedelta对象经过单位换算后的总微秒数
5555
>>> delta.total_seconds() #获取timedelta对象包含的总秒数
2118605.005555 >>> dt1 = datetime(2021,1,1,12,30,55)
>>> dt2 = datetime(2020,1,1,9,30,00)
>>> dt1 - dt2 #大减小
datetime.timedelta(days=366, seconds=10855)
>>> dt2 - dt1 #小减大
datetime.timedelta(days=-367, seconds=75545)
#以上方法求两个时间的差值 >>> dt1 + timedelta(seconds=5) #5秒后
datetime.datetime(2021, 1, 1, 12, 31)
>>> dt1 - timedelta(seconds=5) #5秒前,第一种方法:直接减去timedelta对象
datetime.datetime(2021, 1, 1, 12, 30, 50)
>>> dt1 + timedelta(seconds=-5) #5秒前,第二种方法:tamedelta对象参数设为正、负数以加减
datetime.datetime(2021, 1, 1, 12, 30, 50)
#以上方法可将时间向前、向后延迟 >>> (dt1 - dt2).total_seconds() #计算时间差总秒数
31633255.0 >>> dt1>dt2
True
>>> dt1<dt2
False
>>> dt1 == dt2
False
#比较大小

拓展:计算时间差,单位:天、时、分。
有时我们需要计算时间差,但是timedelta对象中只包含days、seconds、microseconds三种属性,并不能满足我们的需要,于是可以写一个函数,传入两个datetime对象,计算其天、时、分的差值:

def delta(start,end):
days = 0
hours = 0
minutes = 0
delta = end-start
minutes = int(delta.total_seconds() // 60)
if minutes >= 60:
hours = int(minutes // 60)
minutes = minutes - 60 * hours
if hours >= 24:
days = int(hours // 24)
hours = hours - 24 * days
text = str(days) + '天' if days else ''
text = text + str(hours) + '时' if hours else text
text = text + str(minutes) + '分' if minutes else text return text

效果:

dt1 = datetime(2021,1,1,9,30,20)
dt2 = datetime(2021,6,15,12,30,20)
print(delta(dt1,dt2)) #执行函数
>>>
=================== RESTART: D:\Python\Files\delta.py ==================
165天3时

1.5 datetime.timezone

import datetime as datet
from datetime import datetime, timedelta, timezone

timezone类的参数:

参数 描述
offset timedelta类型,表示与UTC时区的时间间隔,范围:-timedelta(hours=24)至timedelta(hours=24)
name 可选参数,字符串类型,设置该时区名称,可以被datetime对象通过实例方法tzname()获取

timezone类的属性:

属性 描述
timezone.utc 表示utc时区,即timezone(timedelta(hours=0))

使用示例:

>>> import datetime as datet
>>> from datetime import datetime, timedelta, timezone >>> datetime(2021,1,1,12,30,50,tzinfo=timezone.utc)
datetime.datetime(2021, 1, 1, 12, 30, 50, tzinfo=datetime.timezone.utc)
>>> datetime(2021,1,1,12,30,50,tzinfo=timezone(timedelta(hours=8)))
datetime.datetime(2021, 1, 1, 12, 30, 50, tzinfo=datetime.timezone(datetime.timedelta(seconds=28800))) #北京时间 >>> dt = datetime(2021,1,1,12,59,59,tzinfo=timezone.utc) #utc时区
>>> dt.tzinfo #获取时区信息
datetime.timezone.utc
>>> dt.tzname() #获取时区名称
'UTC'
>>> dt.utcoffset() #获取偏移量
datetime.timedelta(0) >>> dt2 = datetime(2021,1,1,12,59,59,tzinfo=timezone(timedelta(hours=8),name='Beijing')) #自定义时区名称
>>> dt2.tzinfo #获取时区信息
datetime.timezone(datetime.timedelta(seconds=28800), 'Beijing')
>>> dt2.tzname() #获取时区名称
'Beijing'
>>> dt2.utcoffset() #获取偏移量
datetime.timedelta(seconds=28800)

2. 模块内格式字符的含义一览表

字符 描述
%a 星期的简写,如星期三为Wed
%A 星期的全写,如星期三为Wednesday
%b 月份的简写,如4月为Apr
%B 月份的全写,如4月为April
%c 日期时间的字符串表示,如: 04/07/10 10:43:39
%d 日在这个月中的天数
%f 微秒(范围:0至999999)
%H 小时(24小时制,范围:0至 23)
%I 小时(12小时制,范围:0至 11)
%j 日在年中的天数,范围:001至366
%m 月份,范围:01至12
%M 分钟,范围:00至59
%p AM或者PM
%S 秒,范围:00至61
%U 周在当年的周数,星期天为周的第一天
%w 今天在这周的天数,范围:0至6,6表示星期天
%W 周在当年的周数,星期一作为周的第一天
%x 日期字符串,如:04/07/10
%X 时间字符串,如:10:43:39
%y 2位数表示的年份
%Y 4位数表示的年份
%z 与utc时间的间隔 (如果是本地时间,返回空字符串)
%Z 时区名称(如果是本地时间,返回空字符串)
%% 转义,%不变

结束语

datetime库功能全面,在其常用模块中,基本上只需要datetime.datetime模块便能满足日常需求。
以上便是我分享的全部内容,如果对你有用,点个赞加个收藏再走吧,也欢迎各位给我提出补充和意见!

本文收录于专栏:Python学习笔记
关注作者,持续阅读,学习更多Python知识!
https://blog.csdn.net/weixin_52132159


2021/8/1

推荐阅读

Python标准库:datetime 时间和日期模块 —— 时间的获取和操作详解的更多相关文章

  1. 使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解(新手必学)

    为大家介绍下Python爬虫库BeautifulSoup遍历文档树并对标签进行操作的详细方法与函数下面就是使用Python爬虫库BeautifulSoup对文档树进行遍历并对标签进行操作的实例,都是最 ...

  2. Python标准库:内置函数hasattr() getattr() setattr() 函数使用方法详解

    hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False.参数object是一个对象 ...

  3. Python标准库 datetime

    >>> import datetime >>> now = datetime.datetime.now() >>> now datetime.da ...

  4. python标准库:collections和heapq模块

    http://blog.csdn.net/pipisorry/article/details/46947833 python额外的数据类型.collections模块和heapq模块的主要内容. 集合 ...

  5. python标准库之operator(运算符模块)

    operator模块提供了一系列与Python自带操作一样有效的函数.例如:operator.add(x, y)和表达式x+y是等效的.那些特殊类的方法都有自己的函数名:为了方便起见,一些函数名是没有 ...

  6. Python标准库(1) — itertools模块

    简介 官方描述:Functional tools for creating and using iterators.即用于创建高效迭代器的函数. itertools.chain(*iterable) ...

  7. python标准库介绍——2 os.path模块详解

    == os.path 模块 == ``os.path`` 模块包含了各种处理长文件名(路径名)的函数. 先导入 (import) ``os`` 模块, 然后就可以以 ``os.path`` 访问该模块 ...

  8. Python + Selenium + AutoIt 模拟键盘实现另存为、上传、下载操作详解

    前言 在web页面中,可以使用selenium的定位方式来识别元素,从而来实现页面中的自动化,但对于页面中弹出的文件选择框,selenium就实现不了了,所以就需引用AutoIt工具来实现. Auto ...

  9. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

随机推荐

  1. Docker 与 K8S学习笔记(九)—— 容器间通信

    容器之间可通过IP.Docker DNS Server或joined三种方式进行通信,今天我们来详细学习一下. 一.IP通信 IP通信很简单,前一篇中已经有所涉及了,只要容器使用相同网络,那么就可以使 ...

  2. 在线编辑Word——插入图片、图形

    在Word中支持插入图片.图形等元素,同时支持对插入的图片和图形进行格式化操作,如裁剪.调整尺寸大小.调成颜色.阴影.倾斜角度.透明度等等.本文,将通过使用Spire.Cloud Word在线编辑器来 ...

  3. OpenCV 可自动调整参数的透视变换

    在shiter大牛的基础之上,对于他的程序做了一定的修改. 首先,通过两个循环使得霍夫变换两个参数:角度的分辨率和点个数的阈值可以变换,这样就不必对于每一张图像都手动的设置阈值.其次,过滤掉了两个距离 ...

  4. RTD2171U替代方案|CS5266Typec转HDMI 4K60HZ转换芯片方案|CS5266芯片

    RTD2171U 是一款USB Type-C到HDMI转换器结合了USB Type-C输入接口和数字高清多媒体接口(HDMI)输出转换芯片.嵌入式微控制器基于工业标准8051内核.接收器端口将信道配置 ...

  5. 【MySQL作业】连接查询综合应用——美和易思连接查询综合应用习题

    点击打开所使用到的数据库>>> 1.统计每件商品的销售数量和销售金额,要求按照销售量和销售金额升序显示商品名.销售量和销售金额, 由于需要统计每件商品的销售数量和销售金额,即便某种商 ...

  6. pod存在,但是deployment和statefulset不存在

    pod存在,但是deployment和statefulset不存在 这样的话,可以看一下是不是ReplicaSet, kubectl get ReplicaSet  -n iot

  7. Swoole 协程简介

    什么是协程 协程可以简单理解为线程,只不过这个线程是用户态的,不需要操作系统参与,创建.销毁和切换的成本都非常低. 协程不能利用多核 cpu,想利用多核 cpu 需要依赖 Swoole 的多进程模型. ...

  8. SpringBoot 之 整合JDBC使用

    导入相关依赖: # pom.xml <dependency> <groupId>org.springframework.boot</groupId> <art ...

  9. [学习笔记] Oracle字段类型、建表语句、添加约束

    SQL语句介绍 数据定义语言(DDL),包括 CREATE. ALTER. DROP等. 数据操纵语言(DML),包括 INSERT. UPDATE. DELETE. SELECT - FOR UPD ...

  10. CSS基础 华为渐变色产品列表 综合实战

    华为网页链接:https://www.huawei.com/cn/?ic_medium=direct&ic_source=surlent html代码部分: <div class=&qu ...