Py002-02-02常用模块一(时间相关)

time 模块

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
import time

time.time() # 从1970年1月1日0时0分0秒 到现在的秒

time.localtime()
# 本地系统时间
# time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=23, tm_min=1, tm_sec=6, tm_wday=0, tm_yday=232, tm_isdst=0)

你可以自定义格式的时间:
a = time.localtime()
'%s-%s-%s'%(a.tm_year,a.tm_mon,a.tm_mday)

time.gmtime() # 格林时间 UTC时间

# localtime还可以传递时间戳「 秒 」来生成时间
time.localtime(1403232424)

# mktime() 将时间对象反转为 时间戳
a = time.localtime()
b = time.mktime(a) # 1403232424

# sleep() 线程挂起
time.sleep(3) # 线程挂起3秒


# asctime() 老外看见的那种格式 带英文的
time.asctime() # 我们很少用

# ctime() 将时间戳转为 asctime格式

# striftime() 格式化时间字符串
time.strftime('%Y-%m-%d %H:%M:%S') # 2018-08-21 10:11:42

time.strftime('%Y-%m-%d %H:%M:%S',结构化时间对象)

# 将一个日期字符串 转换为 结构化时间对象
a = '2018-08-21 10:11:42'
time.strptime(a,'%Y-%m-%d %H:%M:%S') # 结构化时间对象

datetime 模块

1
2
3
4
5
6
7
8
import datetime

a = datetime.now() # 时间对象
a.year
a.month

# 将时间戳转换为时间对象 立刻获取年月日
d = datetime.date.fromtimestamp(time.time()) # 这样会丢失 时分秒的信息

时间运算

加/减 一小时/分钟/天/。。。。

  • datetime.timedelta()
1
2
3
4
5
6
7
8
9
10
11
datetime.datetime.now() - datetime.timedelta(days=1)

datetime.datetime.now() + datetime.timedelta(days=4)

datetime.datetime.now() - datetime.timedelta(months=1)

datetime.datetime.now() - datetime.timedelta(hours=3)

datetime.datetime.now() - datetime.timedelta(minutes=45)

datetime.datetime.now() - datetime.timedelta(secs=12)

时间替换

1
2
d = datetime.datetime.now()
d.replace(year=2016,month=8) # 有很多参数