datetime 模块
In [1]:
- import datetime as dt
datetime
提供了基础时间和日期的处理。
date 对象
可以使用 date(year, month, day)
产生一个 date
对象:
In [2]:
- d1 = dt.date(2007, 9, 25)
- d2 = dt.date(2008, 9, 25)
可以格式化 date
对象的输出:
In [3]:
- print d1
- print d1.strftime('%A, %m/%d/%y')
- print d1.strftime('%a, %m-%d-%Y')
- 2007-09-25
- Tuesday, 09/25/07
- Tue, 09-25-2007
可以看两个日期相差多久:
In [4]:
- print d2 - d1
- 366 days, 0:00:00
返回的是一个 timedelta
对象:
In [5]:
- d = d2 - d1
- print d.days
- print d.seconds
- 366
- 0
查看今天的日期:
In [6]:
- print dt.date.today()
- 2015-09-10
time 对象
可以使用 time(hour, min, sec, us)
产生一个 time
对象:
In [7]:
- t1 = dt.time(15, 38)
- t2 = dt.time(18)
改变显示格式:
In [8]:
- print t1
- print t1.strftime('%I:%M, %p')
- print t1.strftime('%H:%M:%S, %p')
- 15:38:00
- 03:38, PM
- 15:38:00, PM
因为没有具体的日期信息,所以 time
对象不支持减法操作。
datetime 对象
可以使用 datetime(year, month, day, hr, min, sec, us)
来创建一个 datetime
对象。
获得当前时间:
In [9]:
- d1 = dt.datetime.now()
- print d1
- 2015-09-10 20:58:50.148000
给当前的时间加上 30
天,timedelta
的参数是 timedelta(day, hr, min, sec, us)
:
In [10]:
- d2 = d1 + dt.timedelta(30)
- print d2
- 2015-10-10 20:58:50.148000
除此之外,我们还可以通过一些指定格式的字符串来创建 datetime
对象:
In [11]:
- print dt.datetime.strptime('2/10/01', '%m/%d/%y')
- 2001-02-10 00:00:00
datetime 格式字符表
字符 | 含义 |
---|---|
%a |
星期英文缩写 |
%A |
星期英文 |
%w |
一星期的第几天,[0(sun),6] |
%b |
月份英文缩写 |
%B |
月份英文 |
%d |
日期,[01,31] |
%H |
小时,[00,23] |
%I |
小时,[01,12] |
%j |
一年的第几天,[001,366] |
%m |
月份,[01,12] |
%M |
分钟,[00,59] |
%p |
AM 和 PM |
%S |
秒钟,[00,61] (大概是有闰秒的存在) |
%U |
一年中的第几个星期,星期日为第一天,[00,53] |
%W |
一年中的第几个星期,星期一为第一天,[00,53] |
%y |
没有世纪的年份 |
%Y |
完整的年份 |