python UNIX_TIMESTAMP時間處理方法分析
更新時間:2016年04月18日 11:38:33 作者:anghlq
這篇文章主要介紹了python UNIX_TIMESTAMP時間處理方法,結合實例形式分析了Python針對UNIX_TIMESTAMP時間的常見運算技巧,需要的朋友可以參考下
本文實例講述了python UNIX_TIMESTAMP時間處理方法。分享給大家供大家參考,具體如下:
from datetime import datetime import time int(time.mktime(rm.start_time.timetuple())) datetime.fromtimestamp(time.time()) rf.start_time + timedelta(0, math.ceil(diff.total_seconds()/(3600*rf.period))*3600*rf.period)
獲取按月或者小時偏移時間
def getlastday(datetimeobj):
year= datetimeobj.year
month = datetimeobj.month + 1
if month>12:
year = year + 1
month=1
return datetime(year, month, 1) - timedelta(1)
def getSendTime(period, start_time):
datenow = datetime.now()
nextTime = preTime = start_time
if period > 0 and period < 1000:
diff = datetime.now() - start_time
nextTime = start_time + timedelta(0, math.ceil(diff.total_seconds()/(3600*period))*3600*period)
preTime = start_time + timedelta(0, math.floor(diff.total_seconds()/(3600*period))*3600*period)
if period == 1001:
if datenow.day>start_time.day:
preTime = datetime(datenow.year, datenow.month, start_time.day)
nextTime = getlastday(getlastday(datenow)+timedelta(1))
if nextTime.day > start_time.day:
nextTime = datetime(nextTime.year, nextTime.month, start_time.day)
else:
preTime = getlastday(datetime(datenow.year, datenow.month, 1) - timedelta(1))
if preTime.day > start_time.day:
preTime = datetime(preTime.year, preTime.month, start_time.day)
nextTime = getlastday(datenow)
if nextTime.day > start_time.day:
nextTime = datetime(nextTime.year, nextTime.month, start_time.day)
return preTime, nextTime
排序
reportMetaPeriodInfo.sort(lambda p1, p2:cmp(p1['k'], p2['k']))
獲取ip
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 0))
localIP=s.getsockname()[0]
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python日期與時間操作技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章
pytorch DistributedDataParallel 多卡訓練結果變差的解決方案
這篇文章主要介紹了pytorch DistributedDataParallel 多卡訓練結果變差的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06

