Datetime_Module
作用:处理日期和时间
一、Datetime模块中的类
- datetime:表示日期和时间,可以处理年、月、日、时、分、秒。
- date:表示日期,主要用于处理年、月、日。
- time:表示时间,主要用于处理时、分、秒。
- timedelta:表示时间间隔,即两个时间点的间隔,主要用于做时间加减。
- tzinfo:时区的相关信息。
二、Date类 <==> 日期
1.创建Date类对象
使用 Datetime.date() 函数创建日期对象,其中需要传递一个表示日期的元组,其中包含年、月、日。
import datetime date1 = datetime.date(2023, 7, 4) print(date1) # 输出:2023-07-04 value = (2023 , 10 , 8) #元组 date2 = datetime.date(value[0] , value[1] , value[2]) print(date2) # 输出:2023-10-08
2.Date对象的属性
-
- year:年份
- month:月份
- day:日期
- weekday():星期几(其中0表示星期一,6表示星期日)
- isocalendar():返回一个包含 年份、星期数 和 该年的第几天 的元组
import datetime date = datetime.date(2023, 7, 4) print(date.year) # 输出:2023 print(date.month) # 输出:7 print(date.day) # 输出:4 print(date.weekday()) # 输出:6,表示星期日 print(date.isocalendar()) # 输出:(2023, 30, 3),表示2023年第30个星期,该年的第3天
3.日期的比较
使用关系运算符(<、>、= 等)比较两个日期的大小关系。比较的是日期本身,而不是时间。
import datetime date1 = datetime.date(2023, 7, 4) date2 = datetime.date(2023, 7, 5) if date1 < date2: print("date1小于date2") else: print("date1不小于date2")
>>>date1小于date2
4.日期的运算
#(1)加法:在现有日期的基础上增加一定的时间长度 from datetime import date, timedelta d = date(2023, 7, 4) d_future = d + timedelta(days=5) # 在d的基础上向后推5天 print(d_future) # 输出:2023-07-09 #(2)减法:在现有日期的基础上减去一定的时间长度 from datetime import date, timedelta d = date(2023, 7, 4) d_past = d - timedelta(days=5) # 在d的基础上向前推5天 print(d_past) # 输出:2023-06-28 #(3)相减:两个日期相减可以得到一个timedelta对象,表示两个日期之间的时间差 from datetime import date, timedelta d1 = date(2023, 7, 4) d2 = date(2023, 7, 9) delta = d2 - d1 # 得到两个日期之间的时间差 print(delta) # 输出:5 days, 0:00:00
5.日期与字符串
(1)使用strftime()
方法将日期格式化为指定的字符串格式。这个方法接受一个格式字符串作为参数。即strftime()的返回值为字符串。
(2)使用strptime()
方法将字符串解析为日期。这个方法接受两个参数:日期字符串和日期格式字符串。
#(1)strftime print(d.strftime('%Y-%m-%d')) # 输出: '2023-07-04' #(2)strptime from datetime import date # 从字符串解析日期 d = date.strptime('2023-07-04', '%Y-%m-%d') print(d) # 输出: date(2023, 7, 4)
三、Datetime类 <==> 日期时间
1.创建Datetime对象
(1)使用基本构造方法 datetime() 方法构造;
(2)使用 now() 获取当前日期和时间对象;
(3)使用 fromtimestamp() 给定一个时间戳;下方案例中的 timestamp 是自1970年1月1日00:00:00(UTC)以来的秒数,小数点后边的部分代表微秒。fromtimestamp()函数会返回一个datetime类型的对象,代表指定的日期和时间。
#(1)datetime.datetime() from datetime import datetime as dt specific_datetime = dt(2023, 7, 4, 12, 30, 45) print(specific_datetime) #(2)now() from datetime import datetime as dt current_datetime = dt.now() print(current_datetime)
#(3)fromtimestamp() from datetime import datetime as dt, timezone timestamp = 1633649780.1234567 dt_object = dt.fromtimestamp(timestamp, timezone.utc) print(dt_object)
2.datetime对象的属性
-
- year:表示年份。
- month:表示月份。
- day:表示日期。
- hour:表示小时数。
- minute:表示分钟数。
- second:表示秒数。
- microsecond:表示微秒数。
3.常见的方法
-
- datetime.datetime():通过位置参数传参创建datetime对象,也可以通过关键字传参方式创建。
- datetime.datetime.now():不需要参数,直接返回当前的日期和时间。
- datetime.datetime.today():不需要参数,直接返回当前的日期。
- datetime.datetime.utcnow():不需要参数,直接返回当前的世界标准时间日期和时间。
4.datetime对象之间的运算
(1)在两个datetime对象之间进行减法运算,得到一个timedelta对象,表示两个日期或时间之间的间隔。
from datetime import datetime as dt d1 = dt(2023, 7, 4, 12, 30) d2 = dt(2023, 7, 5, 12, 30) delta = d2 - d1 print(delta) # 输出:1 day, 0:00:00
(2)datetime对象可以与timedelta对象相加或相减,得到一个新的datetime对象。
from datetime import datetime as dt d1 = dt(2023, 7, 4, 12, 30) d2 = dt(2023, 7, 5, 12, 30) delta = d2 - d1 print(delta) # 输出:1 day, 0:00:00
5.datetime与字符串
同date
四、Time类 <==> 时间
1.创建Time对象
datetime.time是Python的datetime模块中的一个类,它用于表示一天中的时间,包括小时、分钟、秒和微秒。
创建datetime.time对象可以通过以下三种方式:
(1)使用time()函数。
from datetime import time t = time() #创建一个表示当前时间的time对象
(2)使用datetime模块中的datetime类,只指定小时、分钟、秒和微秒参数来创建一个time对象。
from datetime import datetime t = datetime(2023, 7, 4, 15, 30, 45, 987654) #创建一个表示2023年7月4日15:30:45.987654的datetime对象,然后可以调用它的time()方法来获取它的时间部分,即一个time对象。
(3)使用datetime模块中的fromordinal()函数和toordinal()方法,给出一个时间点的ordinal值(自1970年1月1日以来的秒数)。
from datetime import time t = time.fromordinal(366300000) #创建一个表示UTC时间2023年7月4日12:00:00的time对象。注意这种方法的参数是一个整数。
2.datetime.time的属性
-
- hour:表示小时数,范围为0-23。
- minute:表示分钟数,范围为0-59。
- second:表示秒数,范围为0-61(注:60和61用于闰秒)。
- microsecond:表示微秒数。
- hour、minute、second和microsecond都是只读的属性,不能被修改。
3.datetime.time的常见方法
-
- time.replace(hour=h, minute=m, second=s, microsecond=us) :返回一个新的 time 对象,它的 hour、minute、second 和 microsecond 与 self 相同,但 hour、minute、second 和 microsecond 参数可以指定。
- time.timetuple() :返回一个包含时间信息的元组,元组中的元素是 hour、minute、second 和 microsecond。
- time.timestamp() :返回一个表示该时间的浮点数,以 UTC 为准。在 Python 3.3 及以后的版本中可用。该浮点数是自1970年1月1日0时0分0秒(UTC)以来的秒数。
- time.utctimetuple() :与 timetuple() 类似,但不考虑本地时区。始终返回 UTC 时间。
- time.toordinal() :返回一个表示该时间的 ordinal 值,与 timestamp() 类似,但是以整数形式表示。在 Python 3.3及以后的版本中可用。注意这种方法的参数是一个整数。
- time.strftime(format) :返回一个字符串,格式按照 format 参数规定的方式被修改过。例如:“%H:%M:%S”。
- time.strptime(string, format) :将按照 format 参数指定的方式解析 string 参数并返回一个 time 对象。例如:time.strptime('15:30:45', '%H:%M:%S')。
4.datetime.time的运算
datetime.time对象可以和datetime模块中的其他类型进行运算,例如:
datetime.timedelta:可以使用加法和减法运算将datetime.time对象与datetime.timedelta对象相加或相减,结果是一个新的datetime.datetime对象。
from datetime import timedelta, datetime t = datetime(2023, 7, 4, 15, 30, 45) # datetime对象 td = timedelta(hours=2) # timedelta对象 t_new = t + td # datetime对象与timedelta对象的加法运算 print(t_new) # 输出:2023-07-04 17:30:45.000000
五、Timedelta类 <==> 时间间隔
1.创建timedelta对象
(1)使用timedelta()
函数。
#创建一个表示1天的timedelta对象。 from datetime import timedelta as td delta = td(days=1)
(2)使用timedelta
对象的属性。
#创建一个表示1天的timedelta对象。 from datetime import timedelta as td delta = td() delta.days = 1
(3)使用timedelta()
函数的参数。
#创建一个表示1天3小时的timedelta对象。 from datetime import timedelta as td delta = td(days=1, hours=3)
2.timedelta的属性
-
days
: 整数部分的天数。例如,delta.days
可以获取或设置一个整数表示的天数。seconds
: 整数部分的秒数(不包括天数部分)。例如,delta.seconds
可以获取或设置一个整数表示的秒数。注意这个不包括天数部分的小时、分钟和秒数。microseconds
: 微秒数(不包括天数和秒数部分)。例如,delta.microseconds
可以获取或设置一个整数表示的微秒数。注意这个不包括天数、秒数部分的小时、分钟和秒数。total_seconds()
方法: 返回该时间差的总秒数。例如,delta.total_seconds()
会返回86401秒(假设delta
为一天)。total_days()
方法: 返回该时间差的总天数(可能有小数)。例如,delta.total_days()
会返回1.0(假设delta
为一天)。
3.timedelta的方法
-
timedelta.total_seconds()
: 返回该时间差的总秒数。这个方法和total_seconds属性是相同的。timedelta.total_days()
: 返回该时间差的总天数(可能有小数)。这个方法和total_days属性是相同的。timedelta.__str__()
: 返回描述该时间差的字符串。例如,str(delta)
可能返回'1 day, 0:00:00'。timedelta.__repr__()
: 返回表示该时间差的字符串。例如,repr(delta)
可能返回"datetime.timedelta(1)"。
标签:timedelta,Python,time,Module,datetime,print,2023,date,Datetime From: https://www.cnblogs.com/SouthDreamYao/p/17751805.html