Python-datetime模块

datetime模块定义

python中的datetime模块提供了操作日期和时间功能, 该模块提供了一下类对象

日期和时间进行操作的内置模块,time模块、datetime模块和calendar模块

 datetime模块常用三个"类"  date  time  datetime

 一个文件是一个模块,一个模块里面有多个类,一个类有多个方法

datetime模块下的类

类名描述
datetime.date日期类
datetime.time时间类
datetime.datetime日期与时间类
datetime.timedelta表示两个date、time、datetime实例之间的时间差
datetime.tzinfo时区相关信息对象的抽象基类。
datetime.timezonePython3.2中新增的功能,实现tzinfo抽象基类的类,表示与UTC的固定偏移量

两个属性

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

date类

date类定义

datetime模块下的日期类(date),只能处理年月日这种日期时间,不能处理时分秒。

例如

#date  类

 #定义
'''
 class datetime.date(year,month,day)
'''

import datetime as dt  #as  起别名

date = dt.date(2021,10,11)  #从datetime模块里面调用date类

#date.max   date对象所能表示的最大日期:9999-12-31
print(date.max)  #9999-12-31

#date.resolution   date对象表示的日期最小单位:天
print(date.resolution) #1 day, 0:00:00

#20190809  /60/60/60/12   根据跟定的时间戳,放回一个date对象
print(date.fromtimestamp(20190809))  #1970-08-23  

#date.today()  放回一个当前本地日期的date对象
print(date.today()) #2021-10-11

#
print(date.year) #2021
 
#date.replace(year,month,day) 生成一个新的日期对象,原日期对象不变
print(date.replace(1937,8,8))  #1789-10-11

print(date.weekday()) #0

print(date.isoweekday()) #1

date类常用的方法和属性

类方法**/属性名称**描述
date.maxdate对象所能表示的最大日期:9999-12-31
date.mindate对象所能表示的最小日期:00001-01-01
date.resoluationdate对象表示的日期的最小单位:天
date.today()返回一个表示当前本地日期的date对象
date.fromtimestamp(timestamp)根据给定的时间戳,返回一个date对象
d.year
d.month
d.day
d.replace(year[, month[, day]])生成并返回一个新的日期对象,原日期对象不变
d.timetuple()返回日期对应的time.struct_time对象
d.toordinal()返回日期是是自0001-01-01开始的第多少天
d.weekday()返回日期是星期几,[0, 6],0表示星期一
d.isoweekday()返回日期是星期几,[1, 7], 1表示星期一
d.isocalendar()返回一个元组,格式为:(year, weekday, isoweekday)
d.isoformat()返回‘YYYY-MM-DD’格式的日期字符串
d.strftime(format)返回指定格式的日期字符串,与time模块的strftime(format, struct_time)功能相同

例如

import time
from datetime import date

print(date.max)  # 9999-12-31
print(date.min)  # 0001-01-01 
print(date.resolution)  # 1 day, 0:00:00
print(date.today())  # 2020-03-17  
print(date.fromtimestamp(time.time()))  # 2020-03-17
d = date.today()  
print(d.year)  # 2020
print(d.month)  # 3
print(d.day)  # 17
print(d.replace(2019))  # 2019-03-17
print(d.replace(2019, 5))  # 2019-05-17
print(d.replace(2019, 5, 21))  # 2019-05-21
print(d.timetuple())  # time.struct_time(tm_year=2020, tm_mon=3, tm_mday=17, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=77, tm_isdst=-1)
print(d.toordinal())  # 737501
print(d.weekday())  # 1
print(d.isoweekday())  # 2
print(d.isocalendar())  # (2020, 12, 2)
print(d.isoformat())  # 2020-03-17
print(d.ctime())  # Tue Mar 17 00:00:00 2020
print(d.strftime('%Y/%m/%d'))  # 2020/03/17

time类

time类常用的方法

类方法**/属性名称**描述
time.maxtime类所能表示的最大时间:time(23, 59, 59, 999999)
time.mintime类所能表示的最小时间:time(0, 0, 0, 0)
time.resolution时间的最小单位,即两个不同时间的最小差值:1微秒
t.hour
t.minute
t.second
t.microsecond微秒
t.tzinfo返回传递给time构造方法的tzinfo对象,如果该参数未给出,则返回None
t.replace(hour[, minute[, second[, microsecond[, tzinfo]]]])生成并返回一个新的时间对象,原时间对象不变
t.isoformat()返回一个‘HH:MM:SS.%f’格式的时间字符串
t.strftime()返回指定格式的时间字符串,与time模块的strftime(format, struct_time)功能相同

 例如

from datetime import time  #导包

print(time.max)  # 23:59:59.999999
print(time.min)  # 00:00:00
print(time.resolution)  # 0:00:00.000001
t = time(12, 15, 40, 6666)
print(t.hour)   # 12
print(t.minute)  # 15
print(t.second)  # 40
print(t.microsecond)  # 6666
print(t.replace(21))  # 21:15:40.006666
print(t.isoformat())  # 12:15:40.006666
print(t.strftime('%H%M%S'))  # 121540
print(t.strftime('%H%M%S.%f'))  # 121540.006666

datetime.datetime类

datetime.datetime类定义

date和time类的一个组合

class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)

一定要注意这是datetime模块下的datetime类,千万不要搞混了!datetime模块下的日期时间类,你可以理解为datetime.time和datetime.date的组合类

datetime类常用的方法

类方法**/属性名称**描述
datetime.today()返回一个表示当前本期日期时间的datetime对象
datetime.now([tz])返回指定时区日期时间的datetime对象,如果不指定tz参数则结果同上
datetime.utcnow()返回当前utc日期时间的datetime对象
datetime.fromtimestamp(timestamp[, tz])根据指定的时间戳创建一个datetime对象
datetime.utcfromtimestamp(timestamp)根据指定的时间戳创建一个datetime对象
datetime.combine(date, time)把指定的date和time对象整合成一个datetime对象
datetime.strptime(date_str, format)将时间字符串转换为datetime对象
dt.year, dt.month, dt.day年、月、日
dt.hour, dt.minute, dt.second时、分、秒
dt.microsecond, dt.tzinfo微秒、时区信息
dt.date()获取datetime对象对应的date对象
dt.time()获取datetime对象对应的time对象,tzinfo为None
dt.timetz()获取datetime对象对应的time对象,tzinfo与datetime对象的tzinfo相同
dt.replace()生成并返回一个新的datetime对象,如果所有参数都没有指定,则返回一个与原datetime对象相同的对象
dt.timetuple()返回datetime对象对应的tuple(不包括tzinfo)
dt.utctimetuple()返回datetime对象对应的utc时间的tuple(不包括tzinfo)
dt.timestamp()返回datetime对象对应的时间戳,Python 3.3才新增的
dt.toordinal()同date对象
dt.weekday()同date对象
dt.isocalendar()同date对象
dt.isoformat([sep])返回一个‘%Y-%m-%d’字符串
dt.ctime()等价于time模块的time.ctime(time.mktime(d.timetuple()))
dt.strftime(format)返回指定格式的时间字符串

 例如

import datetime
#一年有多少秒
print(datetime.timedelta(365).total_seconds())   #31536000.0
#获取现在时间
dt = datetime.datetime.now()

"""
print(dt) #2021-10-04 17:22:31.928545
print(dt + datetime.timedelta(3))    # 3天后 2021-10-07 17:23:33.130410
print(dt + datetime.timedelta(-3))   # 3天前 2021-10-01 17:23:33.130410
print(dt + datetime.timedelta(hours=3))  # 3小时后 2021-10-04 20:24:30.536769
print(dt + datetime.timedelta(hours=-3))  # 3小时前 2021-10-04 14:24:30.536769
print(dt + datetime.timedelta(hours=3, seconds=30))  # 3小时30秒后 2021-10-04 20:25:55.309684

"""

dt2 = dt + datetime.timedelta(hours=10)
print(dt2 - dt)  # 10:00:00
td = dt2 - dt
print(td.seconds)  # 36000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值