脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python处理时间戳和时间计算等的脚本分享

Python处理时间戳和时间计算等的脚本分享

2022-07-27 19:31念槐聚 Python

这篇文章主要为大家整理总结了5个实用的Python脚本,可以实现时间戳处理和时间计算。文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下

由于实际需要,简要写了个小脚本,并打包生成exe,供无网络环境下使用

脚本1:显示当前时间与时间戳,以及10分钟后的时间与时间戳

?
1
2
3
4
5
6
7
8
9
# -*- coding: utf-8 -*-
"""
Project: pyWorkspace
Creator: Administrator -haochuang
Create time: 2021-05-12 09:24
IDE: PyCharm
Introduction:
 
"""
?
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
import time
import datetime
 
 
t=datetime.datetime.now()
 
#当前日期
t1 =t.strftime('%Y-%m-%d %H:%M:%S')
#转为秒级时间戳
ts1=time.mktime(time.strptime(t1, '%Y-%m-%d %H:%M:%S'))
#转为毫秒级
end_time=int(str(ts1*1000).split(".")[0])
 
 
#10分钟后
t2 = (t+datetime.timedelta(minutes=10)).strftime("%Y-%m-%d %H:%M:%S")
# t2=(t-datetime.timedelta(hours=1)).strftime("%Y-%m-%d %H:%M:%S")
#转为秒级时间戳
ts2=time.mktime(time.strptime(t2, '%Y-%m-%d %H:%M:%S'))
#转为毫秒级
start_time=int(str(ts2*1000).split(".")[0])
 
#print("\n","*"*30)
print("\n")
print("*"*30)
print("当前时间戳:")
print(start_time)
print("当前时间:")
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts2)))
print("*"*30,"\n")
 
print("10分钟后的时间戳:")
print(end_time)
print("10分钟后的时间:")
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts1)))
 
print("*"*30,"\n")

脚本2:显示当前时间与时间戳,以及10分钟后的时间与时间戳,允许根据输入的指定时间,生成多久之后的时间戳

?
1
2
3
4
5
6
7
8
9
# -*- coding: utf-8 -*-
"""
Project: pyWorkspace
Creator: Administrator -haochuang
Create time: 2021-05-12 09:24
IDE: PyCharm
Introduction:
 
"""
?
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
40
41
42
43
44
45
46
47
48
49
50
import time
import datetime
 
 
t=datetime.datetime.now()
 
#当前日期
t1 =t.strftime('%Y-%m-%d %H:%M:%S')
#转为秒级时间戳
ts1=time.mktime(time.strptime(t1, '%Y-%m-%d %H:%M:%S'))
#转为毫秒级
end_time=int(str(ts1*1000).split(".")[0])
 
 
#10分钟后
t2 = (t+datetime.timedelta(minutes=10)).strftime("%Y-%m-%d %H:%M:%S")
# t2=(t-datetime.timedelta(hours=1)).strftime("%Y-%m-%d %H:%M:%S")
#转为秒级时间戳
ts2=time.mktime(time.strptime(t2, '%Y-%m-%d %H:%M:%S'))
#转为毫秒级
start_time=int(str(ts2*1000).split(".")[0])
 
#print("\n","*"*30)
print("\n")
print("*"*30)
print("当前时间戳:")
print(start_time)
print("当前时间:")
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts2)))
print("*"*30,"\n")
 
# 10分钟后的时间戳
print("10 分钟后的时间戳:")
print(end_time)
print("10 分钟后的时间:")
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts1)))
print("*"*30,"\n")
 
# 用户自定义时间
time_user = input("需要多少分钟后的时间戳(请输入正确int类型数值):")
t3 = (t+datetime.timedelta(minutes=int(time_user))).strftime("%Y-%m-%d %H:%M:%S")
ts3=time.mktime(time.strptime(t3, '%Y-%m-%d %H:%M:%S'))
#转为毫秒级
start_time=int(str(ts3*1000).split(".")[0])
 
print(time_user + " 分钟后的时间戳:")
print(end_time)
print(time_user + " 分钟后的时间:")
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts3)))
print("*"*30,"\n")

脚本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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# -*- coding: utf-8 -*-
"""
Project: pyWorkspace
Creator: Administrator -haochuang
Create time: 2021-05-12 09:24
IDE: PyCharm
Introduction:
 
"""
import time
import datetime
from datetime import timezone
from datetime import timedelta
 
# 显示当前秒级时间戳与毫秒级时间戳、微秒级时间戳
t = time.time()
#print(t)  # 原始时间数据
#print(int(t))  # 秒级时间戳
#print(int(round(t * 1000)))  # 毫秒级时间戳
#print(int(round(t * 1000000)))  # 微秒级时间戳
 
 
# 显示当前日期:
dt = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
dt_ms = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') # 含微秒的日期时间,来源 比特量化
print("当前日期(s):     " + dt)
print("当前日期(ms):    " + dt_ms)
 
 
# 将日期转为秒级时间戳
#dtt = '2018-01-01 10:40:30'
#dtts = int(time.mktime(time.strptime(dt, "%Y-%m-%d %H:%M:%S")))
#ts_ms = int(time.mktime(time.strptime(dt, "%Y-%m-%d %H:%M:%S")))
t=datetime.datetime.now()
print("当前时间戳(s):    " + t)
print("当前时间戳(ms):   " + (int(round(t * 1000))))
 
 
# 国际标准时间
print("国际标准时间:    "+time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime()))
# 本地时间
print("本地当前时间:    "+time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
 
# 将当前日期转为秒级时间戳
dt = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
dt_ts = int(time.mktime(time.strptime(dt, "%Y-%m-%d %H:%M:%S")))
print("当前时间:        " + dt)
print("当前时间戳:      " + dt_ts)
 
# 将获取十分钟后的秒级时间戳
#dt_10 = int((datetime.datetime.now()+datetime.timedelta(minutes=10)).strftime("%Y-%m-%d %H:%M:%S"))
#ts_10 = int(time.mktime(time.strptime(dt_10, "%Y-%m-%d %H:%M:%S")))
after10 = (datetime.datetime.now()+datetime.timedelta(minutes=10)).strftime("%Y-%m-%d %H:%M:%S")
after10_ts = int(time.mktime(time.strptime(t1,after10)))
print("10分钟后的时间:   " + after10)
print("10分钟后的时间戳: "

脚本4:显示部分时间与时间戳等

?
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# -*- coding: utf-8 -*-
"""
Project: pyWorkspace
Creator: Administrator -haochuang
Create time: 2021-05-12 09:08
IDE: PyCharm
Introduction:
 
"""
 
import datetime
import time
 
print('*'*30 +"获取时间方式")
#获取当前时间:Thu Nov 03 16:40:00 2016
print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
 
#获取当前时间:2016-11-03 16:40:00
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
 
#获取年,月,日:2016-11-03
print(datetime.date.today())
 
#获取当前时间:2016-11-03 16:43:14.550000
print(datetime.datetime.now())
 
#不加参数是00:00,参数days=1表示一天:1 day, 0:00:00
print(datetime.timedelta(days=1))
 
#获取昨天日期:2016-11-02
nowtime=datetime.date.today()
oldtime=datetime.timedelta(days=1)
print(nowtime-oldtime)
 
#获取昨天的精确日期
oldtime=datetime.timedelta(days=1)
print (datetime.datetime.now() - oldtime)
 
print ('*'*30 + 'python时间处理之time模块')
 
import time
# 返回时间戳
# print(time.time())
 
# 返回当前时间
print(time.ctime())
 
# 返回一天前的时间
print(time.ctime(time.time()-86400))
 
# 函数返回time.struct_time类型的对象
time_obj = time.gmtime()
print(time_obj)
#结果:time.struct_time(tm_year=2016, tm_mon=7, tm_mday=27, tm_hour=8, tm_min=52, tm_sec=26, tm_wday=2, tm_yday=209, tm_isdst=0)
# 格式化输出:
print(time_obj.tm_year,time_obj.tm_mon,time_obj.tm_mday)
 
print("{year}-{month}".format(year=time_obj.tm_year,month=time_obj.tm_mon))
 
# 以time.struct_time类型,打印本地时间
print(time.localtime())
 
# 转换成时间戳
time_obj = time.gmtime()
print(time.mktime(time_obj))
 
# 延时2秒
time.sleep(2)
 
# 打印UTC,世界标准时间,北京时区是东八区,领先UTC八个小时
print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()))
 
# 本地时间
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
 
# 把time.struct_time类型时间,转换成时间戳
tm = time.strptime("2016-05-6 15:06:33","%Y-%m-%d %H:%M:%S")
print(tm)
print(time.mktime(tm))
 
 
print ('*'*30 + '3-python时间处理之datetime模块')
 
import datetime
 
# 打印当前,年,月,日
print(datetime.date.today())
 
# 打印当前时间,精确到微秒
current_time = datetime.datetime.now()
print(current_time)
 
# 转成time.struct_time格式时间
current_time = datetime.datetime.now()
print(current_time.timetuple())
 
# 加十天
print(datetime.datetime.now() +datetime.timedelta(days=10))
# 减十天
print(datetime.datetime.now() +datetime.timedelta(days=-10))
# 减十个小时
print(datetime.datetime.now() +datetime.timedelta(hours=-10))
# 加120s
print(datetime.datetime.now() +datetime.timedelta(seconds=120))
 
# 替换成指定的时间
cr_time = datetime.datetime.now()
print(cr_time.replace(2014,9,12))
# 结果:2014-09-12 17:28:17.522893
 
# 格式化输出
print(datetime.datetime.strptime("21/11/06 16:30","%d/%m/%y %H:%M"))
 
# 替换成指定时间后,类型是<class 'datetime.datetime'>
current_time = datetime.datetime.now()
time_obj = current_time.replace(2015,5)
print(time_obj,type(time_obj))
# 结果:2015-05-27 17:34:13.350245 <class 'datetime.datetime'>
 
# 对比时间大小,取指定时间范围使用
current_time = datetime.datetime.now()
time_obj = current_time.replace(2015,5)
print(current_time>time_obj)
 
import datetime
def getYesterday():
    today=datetime.date.today()
    oneday=datetime.timedelta(days=1)
    yesterday=today-oneday
    return yesterday
 
# 输出
print(getYesterday())

脚本5:关于时间戳处理

?
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# -*- coding: utf-8 -*-
"""
Project: pyWorkspace
Creator: Administrator -haochuang
Create time: 2021-05-12 09:24
IDE: PyCharm
Introduction:
 
"""
import time
import datetime
from datetime import timezone
from datetime import timedelta
 
# 显示当前秒级时间戳与毫秒级时间戳、微秒级时间戳
t = time.time()
print(t)  # 原始时间数据
print(int(t))  # 秒级时间戳
print(int(round(t * 1000)))  # 毫秒级时间戳
print(int(round(t * 1000000)))  # 微秒级时间戳
 
 
# 显示当前日期:
dt = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
dt_ms = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') # 含微秒的日期时间,来源 比特量化
print(dt)
print(dt_ms)
 
 
# 将日期转为秒级时间戳
dt = '2018-01-01 10:40:30'
ts = int(time.mktime(time.strptime(dt, "%Y-%m-%d %H:%M:%S")))
print(ts)
 
 
# 将秒级时间戳转为日期
ts = 1515774430
dt = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts))
print(dt)
 
# 时区转换
# 显示UTC时间
utc_now = datetime.datetime.utcnow()
print(utc_now)
# 世界标准时间
# utc_time = datetime(2019, 7, 30, 7, 50, 0)
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
# 北京时间UTC+8
# cst_time =utc_time.astimezone(timezone(timedelta(hours=-8))).strftime("%Y-%m-%d %H:%M:%S")
 
# 国际标准时间
print("国际标准时间:"+time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime()))
# 本地时间
print("本地时间:"+time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))

到此这篇关于Python处理时间戳和时间计算等的脚本分享的文章就介绍到这了,更多相关Python 时间戳 时间计算内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.51cto.com/u_15304255/5517039

延伸 · 阅读

精彩推荐