01.time
# 01.time模块
# 1.1 time模块三种格式
模块 | 结果 | 说明 |
---|---|---|
time.time() | 1613221384.608557 | 1.时间戳 |
time.strftime('%Y-%m-%d') | 2021-02-13 | 2.格式化时间 |
time.localtime() | time.struct_time(tm_year=2021… | 3.时间元祖 |
# 1.2 time()模块时间格式转换
import time
print(time.time()) # 时间戳:1511166937.2178104
print(time.strftime('%Y-%m-%d')) # 格式化的字符串: 2017-11-20
print(time.localtime()) # 结构化时间(元组): (tm_year=2017, tm_mon=11...)
print(time.gmtime()) # 将时间转换成utc格式的元组格式: (tm_year=2017, tm_mon=11...)
#1. 将结构化时间转换成时间戳: 1511167004.0
print(time.mktime(time.localtime()))
#2. 将格字符串时间转换成结构化时间 元组: (tm_year=2017, tm_mon=11...)
print(time.strptime('2014-11-11', '%Y-%m-%d'))
#3. 结构化时间(元组) 转换成 字符串时间 :2017-11-20
print(time.strftime('%Y-%m-%d', time.localtime())) # 默认当前时间
#4. 将结构化时间(元组) 转换成英文字符串时间 : Mon Nov 20 16:51:28 2017
print(time.asctime(time.localtime()))
#5. 将时间戳转成 英文字符串时间 : Mon Nov 20 16:51:28 2017
print(time.ctime(time.time()))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 02.datetime
# 2.1 datetime获取时间
import datetime
#1、datetime.datetime获取当前时间
print(datetime.datetime.now())
#2、获取三天后的时间
print(datetime.datetime.now()+datetime.timedelta(+3))
#3、获取三天前的时间
print(datetime.datetime.now()+datetime.timedelta(-3))
#4、获取三个小时后的时间
print(datetime.datetime.now()+datetime.timedelta(hours=3))
#5、获取三分钟以前的时间
print(datetime.datetime.now()+datetime.timedelta(minutes = -3))
import datetime
print(datetime.datetime.now()) #2017-08-18 11:25:52.618873
print(datetime.datetime.now().date()) #2017-08-18
print(datetime.datetime.now().strftime("%Y-%m-%d %H-%M-%S")) #2017-08-18 11-25-52
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 2.2 datetime时间转换
#1、datetime对象与str转化
# datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2018-03-09 10:08:50'
# datetime.datetime.strptime('2016-02-22',"%Y-%m-%d")
datetime.datetime(2016, 2, 22, 0, 0)
#2、datetime对象转时间元组
# datetime.datetime.now().timetuple()
time.struct_time(tm_year=2018, tm_mon=3, tm_mday=9,
#3、时间戳转换成datetime对象
# datetime.datetime.fromtimestamp(1520561646.8906238)
datetime.datetime(2018, 3, 9, 10, 14, 6, 890624)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 03.时间模块使用
# 3.1 本地时间与utc时间相互转换
# -*- coding: utf-8 -*-
import time
import datetime
def utc2local(utc_st):
''' 作用:将UTC时间装换成本地时间
:param utc_st: 传入的是utc时间(datatime对象)
:return: 返回的是本地时间 datetime 对象
'''
now_stamp = time.time()
local_time = datetime.datetime.fromtimestamp(now_stamp)
utc_time = datetime.datetime.utcfromtimestamp(now_stamp)
offset = local_time - utc_time
local_st = utc_st + offset
return local_st
def local2utc(local_st):
''' 作用:将本地时间转换成UTC时间
:param local_st: 传入的是本地时间(datatime对象)
:return: 返回的是utc时间 datetime 对象
'''
time_struct = time.mktime(local_st.timetuple())
utc_st = datetime.datetime.utcfromtimestamp(time_struct)
return utc_st
utc_time = datetime.datetime.utcfromtimestamp(time.time())
# utc_time = datetime.datetime(2018, 5, 6, 5, 57, 9, 511870) # 比北京时间晚了8个小时
local_time = datetime.datetime.now()
# local_time = datetime.datetime(2018, 5, 6, 13, 59, 27, 120771) # 北京本地时间
utc_to_local = utc2local(utc_time)
local_to_utc = local2utc(local_time)
print utc_to_local # 2018-05-06 14:02:30.650270 已经转换成了北京本地时间
print local_to_utc # 2018-05-06 06:02: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
26
27
28
29
30
31
32
33
34
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
# 3.2 django的timezone时间与本地时间转换
from django.utils import timezone
from datetime import datetime
utc_time = timezone.now()
local_time = datetime.now()
#1、utc时间装换成本地时间
utc_to_local = timezone.localtime(timezone.now())
#2、本地时间装utc时间
local_to_utc = timezone.make_aware(datetime.now(), timezone.get_current_timezone())
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 3.3 Python计算两个日期之间天数
import datetime
d1 = datetime.datetime(2018,10,31) # 第一个日期
d2 = datetime.datetime(2019,2,2) # 第二个日期
interval = d2 - d1 # 两日期差距
print(interval.days) # 具体的天数
1
2
3
4
5
2
3
4
5
上次更新: 2024/3/13 15:35:10