datetime 模块提供的类有date,time,datetime,timedelta,tzinfo。
一. date类:
date对象的结构:
datetime.date(year, month, day)
- 生成date对象:
import datetime
from datetime import date
t=datetime.date(2017,4,29)
print(t)
输出:
2017-04-29
- datetime.date()静态方法和字段
2.1 date.max、date.min:date对象所能表示的最大、最小日期;
from datetime import *
import time
print('date.max:',date.max)
date.max: 9999-12-31
2.2 date.resolution:date对象表示日期的最小单位。这里是天。
from datetime import *
import time
print('date.resolution:',date.resolution)
输出:
date.resolution: 1 day, 0:00:00
2.3 date.today():返回一个表示当前本地日期的date对象;
from datetime import *
import time
print('date.today:',date.today())
输出:
date.today: 2019-02-27
2.4 date.fromtimestamp(timestamp):将时间戳转化为date格式
from datetime import *
import time
print(date.fromtimestamp(time.time()))
输出:
2019-02-27
- date对象的方法:
3.1 获取date对象的年月日 d1 = date(year,month,date)
d1.year、date.month、date.day:年、月、日;
from datetime import *
import time
d=date(2018,1,3)
print(d.year)
输出:
2018
3.2 d1.replace(year, month, day):生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性。(
from datetime import *
import time
d=date(2018,1,3)
d2=d.replace(year=2019)
print(d2)
print(d)
输出:
2019-01-03
2018-01-03
3.3 d1.timetuple():返回日期对应的time.struct_time对象;
from datetime import *
import time
d=date(2018,1,3)
print(d.timetuple())
输出:
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=3, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=3, tm_isdst=-1)
3.4 d1.weekday():返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推
from datetime import *
import time
d=date(2018,1,3)
print(d.weekday())
输出:
2 #周三
3.5 d1.isoweekday():返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此类推;
from datetime import *
import time
d=date(2018,1,3)
print(d.isoweekday())
输出:
3
3.6 d1.isoformat():返回格式如’YYYY-MM-DD’的字符串;
from datetime import *
import time
d=date(2018,1,3)
print(d.isoformat())
输出:
2018-01-03
3.7 d1.isoformat():返回格式如’YYYY-MM-DD’的字符串;
from datetime import *
import time
d=date(2018,1,3)
print(d.isocalendar())
输出:
(2018, 1, 3)
3.8 8. d1.strftime(fmt):和time模块format相同。
from datetime import *
import time
d=date(2018,1,3)
print(d.strftime('%Y-%m-%d'))
输出:
2018-01-03
二.time 类
time类的结构:
datetime.time(hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] )
- 生成time对象:
import datetime
from datetime import time
t=datetime.time(22,14,26)
print(t)
输出:
22:14:26
- 静态方法和字段
time.min、time.max:time类所能表示的最小、最大时间。(同date模块) - 方法和属性
3.1 获取时分秒信息:
t.hour、t.minute、t.second、t.microsecond:时、分、秒、微秒;
import datetime
from datetime import time
t=datetime.time(22,15,24)
print(t.hour)
输出:
22
3.2 对time对象进行修改: time.replace(
([ hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] )
import datetime
from datetime import time
t=datetime.time(22,15,24)
t1=t.replace(hour=23,second=56)
print(t1)
输出:
23:15:56
3.3 time.isoformat(format):输出格式化时间
3.4 time.strftime (format)格式化时间,可自定义格式
三. datetime类: datetime相当于date和time结合起来。
datetime对象的结构:
datetime.datetime (year, month, day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] )
- 静态方法和字段
1.1 datetime.today()
import datetime
from datetime import datetime
print(datetime.today())
输出:
2019-02-27 22:38:36.669906
1.2 datetime.now([tz]):返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;
1.3 datetime.utcnow():返回一个当前utc时间的datetime对象;#格林威治时间
1.4 datetime.fromtimestamp(timestamp[, tz]):根据时间戮创建一个datetime对象,参数tz指定时区信息;
1.5 datetime.combine(date, time):根据date和time,创建一个datetime对象;
import datetime
from datetime import datetime
from datetime import date
from datetime import time
t=time(23,14,25)
d=date(2018,4,26)
dt=datetime.combine(d,t)
print(dt)
输出:
2018-04-26 23:14:25
- datetime方法和属性:
2.1 获取datetime对象属性:
dt=datetime.now()#datetime对象
dt.year、month、day、hour、minute、second、microsecond、tzinfo:
2.2 dt. replace ([ year[ , month[ , day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] ] ] ]):
2.3 dt. timetuple () 以元祖形式返回datetime对象属性
2.4 dt. weekday ()
四. timedelta 类:时间加减
使用timedelta可以很方便的在日期上做月以下的时间单位的计算,包括天days,小时hour,分钟,秒,毫秒,微妙的时间计算,如果要计算月份则需要另外的办法。
#利用timedelta对datetime进行加减
from datetime import *
t =datetime.now()
t1=t+timedelta(days=1) #明天
t2=t+timedelta(days=-1)#昨天
t3=t-timedelta(days=1)#昨天
print(t1.date(),t2.date(),t3.date())
输出:
2019-01-24 2019-01-22 2019-01-22
#datetime对象直接加减
from datetime import *
delta=datetime(2011,1,7)-datetime(2008,4,26,8,15)
print(delta)
print(delta.days)
print(delta.seconds)
输出:
985 days, 15:45:00
985
56700
#timedelta 默认参数是‘日’,返回的仍是datetime 格式
from datetime import *
delta=datetime.now()-timedelta(12)
print(delta)
输出:
2019-01-11 14:59:29.059329