Python手册(12) 日期

1. 日期类

  • datetime模块
  • 包括以下对象:
    1. date
    2. datetime
    3. time
    4. timedelta
    5. tzinfo

2. 获取日期类对象

1
2
3
4
5
from datetime import *

d1 = datetime.now()
d2 = datetime(2011, 12, 3)
d3 = datetime(2017, 8, 12, 6, 12, 31, 555) # 其中年月日必须

3. 时间对象与字符串的转换

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from datetime import *

# 直接获取字符串
str(datetime.now()) # 如2017-09-15 10:13:07.773401

# 从时间对象到字符串(格式化)
# 使用strftime()
dt = datetime.now()
str_dt = dt.strftime("%Y-%m-%d %H:%M:%S") # 2017-09-15 10:18:53

# 从字符串到时间对象(格式化)
# 使用strptime
str_dt = "2017-06-18 02:00:21"
dt = datetime.strptime(str_dt, "%Y-%m-%d %H:%M:%S")

# %a 星期的简写。如 星期三为Web
# %A 星期的全写。如 星期三为Wednesday
# %b 月份的简写。如4月份为Apr
# %B 月份的全写。如4月份为April
# %c 日期时间的字符串表示。(如: 04/07/10 10:43:39)
# %d 日在这个月中的天数(是这个月的第几天)
# %f 微秒(范围[0,999999])
# %H 小时(24小时制,[0, 23])
# %I 小时(12小时制,[0, 11])
# %j 日在年中的天数 [001,366](是当年的第几天)
# %m 月份([01,12])
# %M 分钟([00,59])
# %p AM或者PM
# %S 秒(范围为[00,61],为什么不是[00, 59],参考python手册~_~)
# %U 周在当年的周数当年的第几周),星期天作为周的第一天
# %w 今天在这周的天数,范围为[0, 6],6表示星期天
# %W 周在当年的周数(是当年的第几周),星期一作为周的第一天
# %x 日期字符串(如:04/07/10)
# %X 时间字符串(如:10:43:39)
# %y 2个数字表示的年份
# %Y 4个数字表示的年份
# %z 与utc时间的间隔 (如果是本地时间,返回空字符串)
# %Z 时区名称(如果是本地时间,返回空字符串)
# %% 输出百分号

4. datetime中的对象

1
2
3
4
5
6
7
8
print(dt.year)
print(dt.month)
print(dt.day)
print(dt.hour)
print(dt.minute)
print(dt.second)
print(dt.microsecond)
print(dt.tzinfo)

5. 比较

1
2
3
4
5
6
7
from datetime import *

# datetime 对象可以直接比较大小
# > >= == != <= <
dt1 = datetime.now()
dt2 = datetime.now()
dt1 > dt2

5. 加减

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from datetime impot *

# timedelta对象
# 两个时间对象相减就得到timedelta
dt1 = datetime.now()
dt2 = datetime.now()
delta = dt1 - dt2

# timedelta构造器
# timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
delta = timedelta(10)

# 对datetime对象进行操作
dt1 = dt1 + delta