Datetime 模块
导入相应的datetime包
Python 3.6.8 |Anaconda, Inc.| (default, Dec 29 2018, 19:04:46) Type 'copyright', 'credits' or 'license' for more information IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help. PyDev console: using IPython 6.4.0 Python 3.6.8 |Anaconda, Inc.| (default, Dec 29 2018, 19:04:46) [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin import datetime
|
1
2
3
4
5
6
7
8
|
Python
3.6.8
|
Anaconda
,
Inc
.
|
(
default
,
Dec
29
2018
,
19
:
04
:
46
)
Type
'copyright'
,
'credits'
or
'license'
for
more
information
IPython
6.4.0
--
An
enhanced
Interactive
Python
.
Type
'?'
for
help
.
PyDev
console
:
using
IPython
6.4.0
Python
3.6.8
|
Anaconda
,
Inc
.
|
(
default
,
Dec
29
2018
,
19
:
04
:
46
)
[
GCC
4.2.1
Compatible
Clang
4.0.1
(
tags
/
RELEASE_401
/
final
)
]
on
darwin
import
datetime
|
datetime 能表示最大的年
datetime.MAXYEAR Out[4]: 9999
|
1
2
3
|
datetime
.
MAXYEAR
Out
[
4
]
:
9999
|
datetime 能表示最小的年
datetime.MINYEAR Out[6]: 1
|
1
2
3
|
datetime
.
MINYEAR
Out
[
6
]
:
1
|
获取今天的日期
today = datetime.date.today() today Out[9]: datetime.date(2019, 1, 9)
|
1
2
3
4
|
today
=
datetime
.
date
.
today
(
)
today
Out
[
9
]
:
datetime
.
date
(
2019
,
1
,
9
)
|
获取今天的年
today.year Out[11]: 2019 today.month Out[12]: 1 today.day Out[13]: 9
|
1
2
3
4
5
6
7
|
today
.
year
Out
[
11
]
:
2019
today
.
month
Out
[
12
]
:
1
today
.
day
Out
[
13
]
:
9
|
以上是通过 today 属性获取的 年月日
查看今天是周几
today.weekday() Out[16]: 2
|
1
2
3
|
today
.
weekday
(
)
Out
[
16
]
:
2
|
今天是周三,显示确是2,因为是从0开始的
today.isocalendar() Out[18]: (2019, 2, 3) today.isoweekday() Out[19]: 3
|
1
2
3
4
5
|
today
.
isocalendar
(
)
Out
[
18
]
:
(
2019
,
2
,
3
)
today
.
isoweekday
(
)
Out
[
19
]
:
3
|
按照国际标准 今天是星期三
如何构造一个日期呢?
birthday = datetime.date(2018,10,10) birthday.year Out[23]: 2018 birthday.month Out[25]: 10 birthday.day Out[26]: 10
|
1
2
3
4
5
6
7
8
|
birthday
=
datetime
.
date
(
2018
,
10
,
10
)
birthday
.
year
Out
[
23
]
:
2018
birthday
.
month
Out
[
25
]
:
10
birthday
.
day
Out
[
26
]
:
10
|
time 只关注 时分秒
t = datetime.time(10,12,30) t Out[29]: datetime.time(10, 12, 30)
|
1
2
3
4
|
t
=
datetime
.
time
(
10
,
12
,
30
)
t
Out
[
29
]
:
datetime
.
time
(
10
,
12
,
30
)
|
获取时分秒
t.hour Out[31]: 10 t.min Out[32]: datetime.time(0, 0) t.second Out[33]: 30
|
1
2
3
4
5
6
7
|
t
.
hour
Out
[
31
]
:
10
t
.
min
Out
[
32
]
:
datetime
.
time
(
0
,
0
)
t
.
second
Out
[
33
]
:
30
|
###既关注 年月日 又关注时分秒
now = datetime.datetime.now() now Out[36]: datetime.datetime(2019, 1, 9, 15, 16, 32, 943098) now.day Out[37]: 9 now.second Out[38]: 32 now.year Out[39]: 2019 now.microsecond Out[40]: 943098
|
1
2
3
4
5
6
7
8
9
10
11
12
|
now
=
datetime
.
datetime
.
now
(
)
now
Out
[
36
]
:
datetime
.
datetime
(
2019
,
1
,
9
,
15
,
16
,
32
,
943098
)
now
.
day
Out
[
37
]
:
9
now
.
second
Out
[
38
]
:
32
now
.
year
Out
[
39
]
:
2019
now
.
microsecond
Out
[
40
]
:
943098
|
构造年月日 时分秒
tt = datetime.datetime(2018,10,10,2,10,30) tt.day Out[43]: 10
|
1
2
3
4
|
tt
=
datetime
.
datetime
(
2018
,
10
,
10
,
2
,
10
,
30
)
tt
.
day
Out
[
43
]
:
10
|
时间格式化
字符串转日期时间
datetime.datetime.strptime("str",'时间格式')
strptime 字符串 parse 解析 时间
s = "2018-10-20" type(s) Out[6]: str t = datetime.datetime.strptime(s,"%Y-%m-%d") t Out[8]: datetime.datetime(2018, 10, 20, 0, 0)
|
1
2
3
4
5
6
7
|
s
=
"2018-10-20"
type
(
s
)
Out
[
6
]
:
str
t
=
datetime
.
datetime
.
strptime
(
s
,
"%Y-%m-%d"
)
t
Out
[
8
]
:
datetime
.
datetime
(
2018
,
10
,
20
,
0
,
0
)
|
日期时间 转 字符串
datetime.datetime.strftime('时间格式')
strftime str 从from time
now = datetime.datetime.now() now.strftime('%Y-%m-%d') Out[11]: '2019-01-09'
|
1
2
3
4
|
now
=
datetime
.
datetime
.
now
(
)
now
.
strftime
(
'%Y-%m-%d'
)
Out
[
11
]
:
'2019-01-09'
|
常用的时间占位符
1. %Y 四位年份 2. %y 两位年份 3. %m 两位月份 4. %d 两位日期 5. %H 两位小时 6. %M 两位分钟 7. %S 两位秒 8. %f 微妙 9. %w 星期 0,。。。6
|
1
2
3
4
5
6
7
8
9
10
|
1.
%
Y
四位年份
2.
%
y
两位年份
3.
%
m
两位月份
4.
%
d
两位日期
5.
%
H
两位小时
6.
%
M
两位分钟
7.
%
S
两位秒
8.
%
f
微妙
9.
%
w
星期
0,。。。
6
|
Timedelta 时间跨度处理
Python 3.6.8 |Anaconda, Inc.| (default, Dec 29 2018, 19:04:46) Type 'copyright', 'credits' or 'license' for more information IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help. PyDev console: using IPython 6.4.0 Python 3.6.8 |Anaconda, Inc.| (default, Dec 29 2018, 19:04:46) [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin import datetime d = datetime.datetime(2018,10,10,2,10,30) birthdate = datetime.datetime(2016,11,12,10,2,10) d -birthdate Out[5]: datetime.timedelta(696, 58100) type(d) Out[6]: datetime.datetime diff = d -birthdate diff.days Out[8]: 696 diff.min Out[9]: datetime.timedelta(-999999999) diff.total_seconds() Out[10]: 60192500.0 diff.seconds Out[11]: 58100 d Out[12]: datetime.datetime(2018, 10, 10, 2, 10, 30)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
Python
3.6.8
|
Anaconda
,
Inc
.
|
(
default
,
Dec
29
2018
,
19
:
04
:
46
)
Type
'copyright'
,
'credits'
or
'license'
for
more
information
IPython
6.4.0
--
An
enhanced
Interactive
Python
.
Type
'?'
for
help
.
PyDev
console
:
using
IPython
6.4.0
Python
3.6.8
|
Anaconda
,
Inc
.
|
(
default
,
Dec
29
2018
,
19
:
04
:
46
)
[
GCC
4.2.1
Compatible
Clang
4.0.1
(
tags
/
RELEASE_401
/
final
)
]
on
darwin
import
datetime
d
=
datetime
.
datetime
(
2018
,
10
,
10
,
2
,
10
,
30
)
birthdate
=
datetime
.
datetime
(
2016
,
11
,
12
,
10
,
2
,
10
)
d
-
birthdate
Out
[
5
]
:
datetime
.
timedelta
(
696
,
58100
)
type
(
d
)
Out
[
6
]
:
datetime
.
datetime
diff
=
d
-
birthdate
diff
.
days
Out
[
8
]
:
696
diff
.
min
Out
[
9
]
:
datetime
.
timedelta
(
-
999999999
)
diff
.
total_seconds
(
)
Out
[
10
]
:
60192500.0
diff
.
seconds
Out
[
11
]
:
58100
d
Out
[
12
]
:
datetime
.
datetime
(
2018
,
10
,
10
,
2
,
10
,
30
)
|
timedelta
d + datetime.timedelta(days=100) Out[14]: datetime.datetime(2019, 1, 18, 2, 10, 30)
|
1
2
3
|
d
+
datetime
.
timedelta
(
days
=
100
)
Out
[
14
]
:
datetime
.
datetime
(
2019
,
1
,
18
,
2
,
10
,
30
)
|
如果是减去一百天呢?
d + datetime.timedelta(days=-100) Out[16]: datetime.datetime(2018, 7, 2, 2, 10, 30) d Out[17]: datetime.datetime(2018, 10, 10, 2, 10, 30)
|
1
2
3
4
5
|
d
+
datetime
.
timedelta
(
days
=
-
100
)
Out
[
16
]
:
datetime
.
datetime
(
2018
,
7
,
2
,
2
,
10
,
30
)
d
Out
[
17
]
:
datetime
.
datetime
(
2018
,
10
,
10
,
2
,
10
,
30
)
|
如果加上 2000 秒呢
d + datetime.timedelta(seconds=2000) Out[19]: datetime.datetime(2018, 10, 10, 2, 43, 50)
|
1
2
3
|
d
+
datetime
.
timedelta
(
seconds
=
2000
)
Out
[
19
]
:
datetime
.
datetime
(
2018
,
10
,
10
,
2
,
43
,
50
)
|
可以加上小时
d + datetime.timedelta(hours=100) Out[21]: datetime.datetime(2018, 10, 14, 6, 10, 30)
|
1
2
3
|
d
+
datetime
.
timedelta
(
hours
=
100
)
Out
[
21
]
:
datetime
.
datetime
(
2018
,
10
,
14
,
6
,
10
,
30
)
|

2万+

被折叠的 条评论
为什么被折叠?



