首頁 > 軟體

Python處理時間戳和時間計算等的指令碼分享

2022-07-27 22:04:05

由於實際需要,簡要寫了個小指令碼,並打包生成exe,供無網路環境下使用

指令碼1:顯示當前時間與時間戳,以及10分鐘後的時間與時間戳

# -*- coding: utf-8 -*- 
"""
Project: pyWorkspace
Creator: Administrator -haochuang
Create time: 2021-05-12 09:24
IDE: PyCharm
Introduction:

"""
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分鐘後的時間與時間戳,允許根據輸入的指定時間,生成多久之後的時間戳

# -*- coding: utf-8 -*- 
"""
Project: pyWorkspace
Creator: Administrator -haochuang
Create time: 2021-05-12 09:24
IDE: PyCharm
Introduction:

"""
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:顯示部分時間與時間戳等

# -*- 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:顯示部分時間與時間戳等

# -*- 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:關於時間戳處理

# -*- 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 時間戳 時間計算內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com