python模块之datetime模块

datetime 模块提供的类有date,time,datetime,timedelta,tzinfo。
一. date类:
date对象的结构:
datetime.date(year, month, day)

  1. 生成date对象:
import datetime
from datetime import date
t=datetime.date(2017,4,29)
print(t)
输出:
2017-04-29
  1. 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
  1. 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] ] ] ] )

  1. 生成time对象:
import datetime
from datetime import time
t=datetime.time(22,14,26)
print(t)
输出:
22:14:26
  1. 静态方法和字段
    time.min、time.max:time类所能表示的最小、最大时间。(同date模块)
  2. 方法和属性
    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.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
  1. 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

猜你喜欢

转载自blog.csdn.net/weixin_44595372/article/details/87995896