Python~datetime模块详解

Python~datetime模块详解

datetime 模块定义了下面几个类:

datetime.date:日期类。常用的属性有year,month,day;

datetime.time:时间类。常用的属性有hour,minute,second,microsecond;

datetime.timedelta:表示时间间隔,即两个时间点之间的长度;

datetime.tzinfo:与时区有关的信息;

date类

获取最大、最小日期

>>> import datetime

>>> datetime.date.min

datetime.date(1, 1, 1)

>>> datetime.date.max

datetime.date(9999, 12, 31)

>>> print (datetime.date.max)

9999-12-31

>>> print (datetime.date.min)

0001-01-01

date.today()函数:获取今天的日期

>>> datetime.date.today()

datetime.date(2018, 11, 3)

>>> print (datetime.date.today())

2018-11-03

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

>>> import datetime

>>> import time

>>> datetime.date.fromtimestamp(time.time())

datetime.date(2018, 11, 3)

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

>>> from datetime import date

>>> date.weekday(date.today())

5

>>> date.today()

datetime.date(2018, 11, 3)

date.isoweekday函数:返回weekday中的星期几,星期一,返回1;星期二,返回2;以此类推

>>> date.today()

datetime.date(2018, 11, 3)

>>> date.isoweekday(date.today())

6

date.isocalendar函数:返回datetime.date时间对象中的year(年),week(周),weekday(工作日)

>>> import datetime

>>> datetime.datetime.now()

datetime.datetime(2018, 11, 3, 20, 13, 3, 868295)

>>> now=datetime.datetime.now()

>>> print (now)

2018-11-03 20:13:21.756677

>>> s=datetime.date.isocalendar(now)

>>> print (s)

(2018, 44, 6)

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

>>> import datetime

>>> now=datetime.datetime.now()

>>> print (now)

2018-11-03 20:13:21.756677

>>> styleTime=now.strftime("%Y-%m-%d %H:%M:%S")

>>> print (styleTime)

2018-11-03 20:13:21

日期加上一个时间间隔

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

from datetime import *

#获取当前日期

dateOld=date.today()

print (dateOld)

#计算十天后的日期

dateNew=dateOld+timedelta(days=10)

print (dateNew)

 

 

 

 

 

 

日期减去一个时间间隔

dateNew = dateOld - timedelta 日期减去一个时间间隔,返回一个新的日期对象

from datetime import *

#获取当前日期

dateOld=date.today()

print (dateOld)

#计算十天后的日期

dateNew=dateOld-timedelta(days=10)

print (dateNew)

 

 

 

 

 

两个日期相减

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

from datetime import *

#获取当前日期

today=date.today()

print (today)

#替换日期

future=today.replace(day=10)

print (future)

 

#求两个日期间的间隔

delta=future-today

print (delta)

 

#在新日期上加上一个日期间隔

print (future+delta)

 

 

 

 

 

 

 

 

 

 

比较日期大小

date1 < date2 返回比较结果布尔值,真返回True,假返回False

from datetime import *

#获取当前日期

today=date.today()

print (today)

#替换日期

future=today.replace(day=10)

print (future)

 

#比较日期大小

print (today>future)

print (today<=future)

 

 

 

 

 

 

 

 

time类

获取最大、最小时间

>>> from datetime import *

>>> time.min

datetime.time(0, 0)

>>> print (time.min)

00:00:00

>>> time.max

datetime.time(23, 59, 59, 999999)

>>> print (time.max)

23:59:59.999999

hour/minute/second/microsecond:时、分、秒、微妙

>>> datetime.now()

datetime.datetime(2018, 11, 3, 20, 41, 46, 203844)

>>> tm=datetime.now()

>>> tm.hour

20

>>> tm.minute

41

>>> tm.second

53

>>> tm.microsecond

670825

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

from datetime import *

#获取当前日期

date1=datetime.now()

print (date1)

#替换时间

date2=date1.replace(hour=10,minute=33)

print (date2)

 

 

 

 

 

 

time.isoformat函数:返回时间格式如:HH:MM:SS的时间字符串表示

>>> from datetime import *

>>> tm1=time(22,45,16)

>>> tm1

datetime.time(22, 45, 16)

>>> print (tm1)

22:45:16

>>> tm2=tm1.isoformat()

>>> print (tm2)

22:45:16

time.strftime函数:返回自定义格式时间字符串

>>> from datetime import *

>>> tm1=time(22,45,16)

>>> print (tm1.strftime("%H:%M:%S"))

22:45:16

>>> print (tm1.strftime("%H-%M-%S"))

22-45-16

Datetime类

today和now函数:返回一个表示当前本地时间的datetime对象

>>> tm=datetime.now()

>>> tm

datetime.datetime(2018, 11, 3, 20, 50, 56, 144768)

>>> tm.year

2018

>>> tm.month

11

>>> datetime.today()

datetime.datetime(2018, 11, 3, 20, 51, 31, 226342)

datetime.fromtimestamp(timestamp [, tz])

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

>>> from datetime import *

>>> import time

>>> tm=time.time()

>>> tm

1541249663.9445474

>>> tm1=datetime.fromtimestamp(tm)

>>> tm1

datetime.datetime(2018, 11, 3, 20, 54, 23, 944547)

>>> type(tm1)

<class 'datetime.datetime'>

datetime.strftime(format)函数:返回自定义的格式时间字符串

>>> from datetime import *

>>> date1=datetime.now()

>>> date1.strftime("%Y-%m-%d %H:%M:%S")

'2018-11-03 21:22:06'

>>> type(date1.strftime("%Y-%m-%d %H:%M:%S"))

<class 'str'>

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

>>> print (datetime.strptime("2018-11-03 20:45:10","%Y-%m-%d %H:%M:%S"))

2018-11-03 20:45:10

>>> type(datetime.strptime("2018-11-03 20:45:10","%Y-%m-%d %H:%M:%S"))

<class 'datetime.datetime'>

year/month/day /hour/minute/second 属性

>>> from datetime import *

>>> tm=datetime.now()

>>> tm

datetime.datetime(2018, 11, 3, 20, 59, 15, 416657)

>>> print (tm)

2018-11-03 20:59:15.416657

>>> tm.year

2018

>>> tm.hour

20

datetime.date() 函数:获取时间中的日期对象date

>>> from datetime import *

>>> datetime.today()

datetime.datetime(2018, 11, 3, 21, 0, 42, 179892)

>>> datetime.date(datetime.today())

datetime.date(2018, 11, 3)

>>> tm=datetime.date(datetime.today())

>>> tm.year

2018

>>> datetime.date(datetime.now())

datetime.date(2018, 11, 3)

datetime.time()函数:获取时间中的时间对象time

>>> from datetime import *

>>> datetime.time(datetime.now())

datetime.time(21, 3, 21, 801060)

>>> tm=datetime.time(datetime.now())

>>> print (tm)

21:03:29.163089

datetime.combine函数:根据date和time,创建一个datetime对象。

参数

date:是datetime.date类型

time:是datetime.time类型

 

>>> from datetime import *

>>> print (datetime.combine(datetime.now(),time(15,12,30)))

2018-11-03 15:12:30

datetime.replace()函数

>>> from datetime import *

>>> tm1=datetime.now()

>>> print (tm1)

2018-11-03 21:08:26.054208

>>> tm2=tm1.replace(year=2015,month=10)

>>> print (tm2)

2015-10-03 21:08:26.054208

mktime函数:将datetime对象转换成时间戳

import datetime

import time

 

#获取当前日期

tm1=datetime.datetime.now()

print (tm1)

#根据当前时间的datetime对象获取当前时间的时间元组

st=tm1.timetuple()

print (st)

#根据当前时间的时间元组获得当前时间的时间元组

timestamp=time.mktime(st)

print (timestamp)

 

 

 

 

 

 

 

 

 

datetime.weekday(time)函数:参数time是一个datetime.date类型的数据。返回weekday中的星期几,星期一,返回0;星期二,返回1;以此类推

>>> from datetime import *

>>> date.today()

datetime.date(2018, 11, 3)

>>> datetime.weekday(date.today())

5

>>> datetime.date(datetime.now())

datetime.date(2018, 11, 3)

>>> datetime.weekday(datetime.date(datetime.now()))

5

datetime.isocalendar(time)函数:参数time是一个datetime.date类型数据,以元组的形式返回当前日期是今年的第几周第几天

>>> from datetime import *

>>> datetime.isocalendar(date.today())

(2018, 44, 6)

Timedelta类

两日期的时间相减,求两个日期间的天数差

import datetime

 

#求两个日期间的天数差

d1=datetime.datetime(2018,11,11)

d2=datetime.datetime(2019,1,1)

 

print ((d2-d1).days)

 

 

 

 

 

 

 

日期或时间加上或减去一个时间间隔

import datetime

 

#获取当前的时间

now=datetime.datetime.now()

print (now)

 

#设定一个时间间隔

delta=datetime.timedelta(days=5)

newTime=now+delta

print (newTime)

 

#原时间减去2天

delta1=datetime.timedelta(days=-2)

newTime1=now-delta1

print (newTime1)

 

#计算100天前的日期

 

from datetime import datetime,timedelta

 

now=datetime.now()

#设置100天前的时间间隔

delta=timedelta(days=-100)

#得到100天前的时间

oldTm=now+delta

print (oldTm)

print (type(oldTm))

print (oldTm.strftime("%Y-%m-%d"))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

timedelta.total_seconds()函数:该方法用于获取总共的秒数

import datetime

#计算给定时间间隔的总秒数

 

seconds=datetime.timedelta(hours=1,seconds=30).total_seconds()

print (seconds)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值