Skip to content

Commit 49cd9c6

Browse files
authored
Create kc46.md
1 parent 0167c6e commit 49cd9c6

File tree

1 file changed

+141
-0
lines changed

1 file changed

+141
-0
lines changed

kc/kc46.md

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
# 4-6 日期和时间
2+
在应用中日期、时间、时间戳(时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量),是会经常要取用的数据,比如得到今天的日期、
3+
4+
星期、一个月的起始和结束等,时间戳经常会用到数据签名或者数据流水号等;使用日期和时间,需要导入库datetime、time,
5+
6+
- time 是继于系统Unix Timestamp的,因此,使用time可能在不同的平台,有差异;日期范围限定在1970 - 2038 之间
7+
- datetime 可以理解为time的升级版,弥补了time的不足,提供了更丰富的功能函数
8+
9+
日期和时间,因为存在不同系统的差异,因此常会用到格式化,python提供的日期格式化符号主要有
10+
格式|含义
11+
-|-|
12+
%a|本地(locale)简化星期名称|
13+
%A|本地完整星期名称|
14+
%b|本地简化月份名称|
15+
%c|本地相应的日期和时间表示|
16+
%d|一个月中的第几天(01-31)|
17+
%H|一天中的第几个小时(24小时制,00-23)|
18+
%I|第几个小时(12小时制,01-12)|
19+
%j|一年中的第几天(001-366)|
20+
%m|月份(01-12)|
21+
%M|分钟数(00-59)|
22+
%p|本地am或者pm的相应符|
23+
%S|秒(01-61)|
24+
%U|一年中的星期数(00-53,星期天是首日)第一个星期天之前的所有天数都放在第0周。
25+
%w|一个星期中的第几天(0-6,0是周日)|
26+
%W|和%U基本相同,不同的是%W以星期一为一个星期的开始
27+
%x|本地相应日期|
28+
%X|本地相应时间|
29+
%y|去掉世纪的年份(00-99)|
30+
%Y|完整的年份|
31+
%Z|时区的名字(如果不存在为空字符)|
32+
%%|'%'字符|
33+
这些格式化字符,不需要做记忆,会通过下面的代码进行讲解
34+
## 1.time的用法
35+
### 代码区 1
36+
```python
37+
1 import time
38+
2
39+
3 # 打印一个当前的时间戳
40+
4 t = time.time()
41+
5 print(t)
42+
6
43+
```
44+
![4](https://user-images.githubusercontent.com/103555341/163546933-bee710b5-943e-454e-b00d-922d2b897614.jpg)
45+
```python
46+
1650187292.611
47+
```
48+
### 代码区 2
49+
```python
50+
1 import time
51+
2
52+
3 # 返回当前系统的时间
53+
4 t = time.localtime()
54+
5 print(t)
55+
6
56+
```
57+
![4](https://user-images.githubusercontent.com/103555341/163546933-bee710b5-943e-454e-b00d-922d2b897614.jpg)
58+
```python
59+
time.struct_time(tm_year=2022, tm_mon=4, tm_mday=17, tm_hour=17, tm_min=29, tm_sec=6, tm_wday=6, tm_yday=107, tm_isdst=0)
60+
```
61+
可以看到,localtime返回的是一个时间的元组,里面包含了,当前时间的年、月、日、小时、分秒等,当然看着和熟悉的电脑日期格式不太一样.
62+
### 代码区 3
63+
```python
64+
1 # 练习题 试着用前面学习到的四舍五入,对上面的时间戳取个整; 取出返回的元组时间里的年
65+
2
66+
```
67+
![4](https://user-images.githubusercontent.com/103555341/163546933-bee710b5-943e-454e-b00d-922d2b897614.jpg)
68+
69+
## 2.datetime用法
70+
datetime根据字面意思主是date和time的组合, datetime模块,主要包含了5个类:
71+
72+
- datetime.date:日期操作的类
73+
- datetime.datetime:日期时间操作的类
74+
- datetime.time:时间操作的类
75+
- datetime.timedelta:时间间隔,即两个时间点的间隔
76+
- datetime.tzinfo:时区的相关信息
77+
### 代码区 4
78+
```python
79+
1 import datetime as dt
80+
81+
2 # 获取今天的日期
82+
3 today = dt.date.today()
83+
4 print('今天是:', today)
84+
5
85+
6 print('今年是:', today.year)
86+
7
87+
```
88+
![4](https://user-images.githubusercontent.com/103555341/163546933-bee710b5-943e-454e-b00d-922d2b897614.jpg)
89+
```python
90+
今天是: 2022-04-17
91+
今年是: 2022
92+
```
93+
### 代码区 5
94+
```python
95+
1 import datetime as dt
96+
2 # 获取当前的时间
97+
3 now = dt.datetime.now()
98+
4 print(now)
99+
5 # 用到了上面的格式化字符,
100+
6 print(now.strftime('%Y'))
101+
7
102+
```
103+
![4](https://user-images.githubusercontent.com/103555341/163546933-bee710b5-943e-454e-b00d-922d2b897614.jpg)
104+
```python
105+
2022-03-21 14:21:43.026081
106+
2022
107+
```
108+
### 代码区 6
109+
```python
110+
1 # 练习题 试着输出更多格式的时间
111+
2
112+
```
113+
![4](https://user-images.githubusercontent.com/103555341/163546933-bee710b5-943e-454e-b00d-922d2b897614.jpg)
114+
### 代码区 7
115+
```python
116+
# 如何取到昨天的日期?
117+
1 import datetime as dt
118+
2
119+
3 today = dt.date.today()
120+
4
121+
5 print('今天是:', today)
122+
6 yesterday = today - dt.timedelta(days=-1)
123+
7 print('昨天是:', yesterday)
124+
8
125+
```
126+
![4](https://user-images.githubusercontent.com/103555341/163546933-bee710b5-943e-454e-b00d-922d2b897614.jpg)
127+
```python
128+
今天是: 2022-04-17
129+
昨天是: 2022-04-18
130+
```
131+
### 代码区 8
132+
```python
133+
1 # 练习题 算一下前天的日期
134+
2
135+
```
136+
![4](https://user-images.githubusercontent.com/103555341/163546933-bee710b5-943e-454e-b00d-922d2b897614.jpg)
137+
138+
139+
140+
141+

0 commit comments

Comments
 (0)