Python时间操作之datetime库

#datetime
date类是一个日期类,由年、月、日组成。由于Python也是面向对象编程语言,所以针对类,就会有构造函数,该类的构造函数如下:
class datetime.date(year,month,day):
year:表示年,范围[MINYEAR, MAXYEAR],即[1,9999]
month:表示月,范围[1,12]
day:一月中第几天,最大值根据给定的year,month参数来决定,例如闰年2月份有29天

import datetime
print(datetime.date.max)  #获取date能表示的最大日期
print(datetime.date.min)  #获取date能表示的最小日期

在这里插入图片描述

datetime.date.today() #该函数返回一个表示当前本地日期的date对象,表示今天的日期。

import datetime
t = datetime.date.today()
print(t)

加粗样式

datetime.date.fromtimestamp() #根据给定的时间戳timestamp,返回一个date对象

import datetime
import time
now = time.time()
print(now)
s = datetime.date.fromtimestamp(now)
print(s)

在这里插入图片描述

datetime.date.weekday() #返回weekday中的星期几,星期一,返回0,;星期二,返回1,;以此类推。该函数需要一个datetime.date类型的参数

import datetime
now = datetime.date.today()
print(now)
print(datetime.date.weekday(now))

在这里插入图片描述

datetime.date.isoweekday() #返回weekday中的星期几,星期一,返回1;星期二,返回2;以此类推。该函数需要一个datetime.date类型的参数

import datetime
now = datetime.datetime.now()
print(now)
dayOfWeekday = datetime.date.isoweekday(now)
print(dayOfWeekday)

在这里插入图片描述

datetime.date.isocalendar() #返回datetime.date时间对象中的year(年),week(周),weekday(工作日)。该函数需要一个datetime.date类型的参数

import datetime
now = datetime.datetime.now()
print(now)
s = datetime.date.isocalendar(now)
print(s)

在这里插入图片描述

date.strftime(fmt) #返回自定义的格式时间字符串。参数fmt(formatTime)是自定义的时间格式

import datetime
now = datetime.datetime.now()
print(now)
otherStyleTime = now.strftime("%Y-%m-%d %H:%M:%S")
print(otherStyleTime)

在这里插入图片描述

dateNow = dateOld + timedelta #日期加上一个时间间隔,返回一个新的日期对象。timedelta表示时间间隔

from datetime import *
today = date.today()  #获取今天的日期
print(today)
print(today+timedelta(days=10))  #在今天的日期上再加10天

在这里插入图片描述

dateNow = date Old - timedelta #日期减去一个时间间隔,返回一个新的日期对象。

from datetime import *
today = date.today()  #获取今天的日期
print(today)
print(today-timedelta(days=10))  #在今天的日期上再减10天

在这里插入图片描述

timedelta = date1 - date2 #两日期相减,返回两个日期间的间隔对象

from datetime import *
#获取今天的日期
today = date.today()
print(today)
#替换形成一个新的日期
future = today.replace(day=15)
print(future)
#算一下两日期间的间隔
delta = future - today
print(delta)
#在原日期上添加一个日期间隔
print(future + delta)

在这里插入图片描述

date1 < date2 #比较日期大小,返回比较结果布尔值

from datetime import *
#今天的日期
now = date.today()
print(now)
#未来的日期
tomorrow = now.replace(day = 14)
print(tomorrow)
#比较两日期大小
print(tomorrow > now)

在这里插入图片描述

time类是一个时间类,由时、分、秒、微秒组成。其构造函数如下:
class datetime.time([hour[,minute[,second[,microsecond[,tzinfo]]]]])
参数tzinfo,它标示时区信息
各参数的取值范围:
hour的范围为[0,24)
minute的范围为[0,60)
second的范围为[0,60)
microsecond的范围为[0,1000000)

import datetime
#获取time能表示的最大时间
maxTime = datetime.time.max
print(maxTime)
#获取time能表示的最小时间
minTime = datetime.time.min
print(minTime)

在这里插入图片描述

time类–hour、minute、second、microsecond

from datetime import *
tm = datetime.now()
print(tm)
print(tm.hour)
print(tm.minute)
print(tm.second)
print(tm.microsecond)

在这里插入图片描述

time.replace() #用给定的参数时、分、秒、微秒代替原有对象中的属性,创建一个新的时间对象,但原有对象仍保持不变。

from datetime import *
tm = datetime.now()
print(tm)
tm1 = tm.replace(hour = 12, minute = 10)
print(tm1)

在这里插入图片描述

time.strftime() #返回自定义格式时间字符串

from datetime import *
tm = time(23,46,10)
print(tm)
tm1 = tm.strftime("%H-%M-%S")
print(tm1)

在这里插入图片描述

datetime类是date和time的结合体,包括date与time的所有信息,date和time类中具有的方法和属性,datetime类都具有。所以在我们日常的工作中,可以仅适用datetime类。该类的构造函数:
datetime.datetime(year,month,day,[,hour[,minute[,second[,microsecond[,tzinfo]]]]])
个参数的含义与date、time构造函数中的一样,但是要注意各参数的取值范围。

from datetime import *
print(datetime.today())

在这里插入图片描述
datetime.now([tz]) #返回一个表示当前本地时间的datetime对象,是一个时间数组格式。如果给定了参数tz,则获取tz所指时区的本地时间。

from datetime import *
tm = datetime.now()
print(tm)
print(tm.year)
print(tm.month)
print(tm.day)
print(tm.hour)
print(tm.minute)
print(tm.second)
print(tm.microsecond)

Python时间操作之datetime库_第1张图片

datetime.fromtimestamp(timestamp[,tz[) #根据时间戳创建一个datetime对象,参数tz指定时区信息,不传默认为本地时区

from datetime import *
import time

t = time.time()
print(t)

#将时间戳转换为一个datetime对象
datetimes = datetime.fromtimestamp(t)
print(datetimes)
print(type(datetimes))
print(str(datetimes))

在这里插入图片描述

datetime.strptime #将格式时间字符串转换为datetime对象

import datetime
print(datetime.datetime.strptime("2019-07-15 06:41:35", "%Y-%m-%d %H:%M:%S"))

在这里插入图片描述

Datetime类——year、month、day、hour、minute、second属性

import datetime
t = datetime.datetime.now()
print("当前的日期和时间是 %s" % t)
print("当前的年份是 %s" %t.year)
print("当前的月份是 %s" %t.month)
print("当前的日期是 %s" %t.day)
print("dd/mm/yyyy 格式是 %s/%s/%s" % (t.day,t.month,t.year))
print("当前小时是 %s" %t.hour)
print("当前分钟是 %s" %t.minute)
print("当前秒是 %s" %t.second)

Python时间操作之datetime库_第2张图片

Timedelta类
datetime.timedelta对象代表两个时间之间的时间差,两个date或datetime对象相减就可以返回一个timedelta对象。
函数原型:
class datetime.timedelta([days[,seconds[,microseconds[,milliseconds[,minutes[,hours[,weeks]]]]]]])
从构造函数的定义中可以看出,所有参数都是可选的,并且默认都是0。参数的值可以是整数,浮点数,正数或负数。timedelta也有自己的一些属性和方法,可以通过dir(datetime.timedelta)查看。针对时间存储,timedelta内部职能存储days,seconds,microseconds,其他参数的值会自动按如下规则进行转换:
1 millisecond(毫秒)转换成 1000 microseconds (微秒)
1 minute 转换成 60 seconds
1 hour 转换成 3600 seconds
1 week 转换成 7 days

两日期的时间相减

import datetime
#求两个日期间的天数差
d1 = (datetime.datetime(2019,6,5))
d2 = (datetime.datetime(2019,7,15))
print((d2-d1).days)

在这里插入图片描述

Timedelta类–日期或时间加上或减去一个时间间隔
例1:计算明天和昨天的日期

import datetime

#获取当前的时间
now = datetime.datetime.now()
print(now)

#设定一个时间间隔,间隔为一天
delta = datetime.timedelta(days=1)
newTime = now + delta
print(newTime)

#得到明天的时间
print(str(newTime)[:-7])

#或者使用格式化函数
print(newTime.strftime("%Y-%m-%d %H:%M:%S"))

#原时间减1天
delta = datetime.timedelta(days = -1)
newTime = now + delta
print(newTime)

在这里插入图片描述

例2:计算100天前的日期

from datetime import datetime
from datetime import timedelta

now = datetime.now()
#设置100天前的时间间隔
delta = timedelta(days = -100)
#得到100天前的时间
oldTime = now + delta
print(oldTime.strftime("%Y-%m-%d"))

#或者:
import datetime
print(datetime.date.today() + datetime.timedelta(days = -100))

在这里插入图片描述

例3:计算3小时前的时间

import datetime
threeHourAge = datetime.datetime.now() - datetime.timedelta(hours = 3)
print(str(threeHoursAgo)[:-7])

在这里插入图片描述

timedelta.total_seconds() #用于获取总共的秒数

import datetime
#计算给定时间间隔的总秒数
seconds  = datetime.timedelta(hours=1,seconds=30).total_seconds()
print(seconds)

在这里插入图片描述

你可能感兴趣的:(python)