#!/usr/bin/env python # coding: utf-8 # In[1]: from datetime import datetime from datetime import timedelta # In[17]: # now = datetime.now() # In[3]: # now # In[4]: def convertStrToDateTime(strDate, formatStr = '%Y-%m-%d %H:%M:%S'): ret = datetime.strptime(strDate, formatStr) return int(ret.timestamp() * 1000) def getMonthStart(now : datetime): ts = (now.replace(day=1, hour=0, minute=0, second=0, microsecond=0).timestamp()) * 1000 return int(ts) # In[5]: # getMonthStart(now) # In[6]: def getPrevMonthEnd(now : datetime): return int(getMonthStart(now) - 1000) # In[7]: # getPrevMonthEnd(now) # In[8]: def getMonthEnd(now : datetime): for date in (range(31, 27, -1)): try: ts = (now.replace(day=date, hour=23, minute=59, second=59, microsecond=0).timestamp()) * 1000 break except: continue return int(ts) # In[9]: # getMonthEnd(now) # In[10]: def getNextMonthStart(now : datetime): return getMonthEnd(now) + 1000 # In[11]: # getNextMonthStart(now) # In[13]: # datetime.fromtimestamp(getNextMonthStart(now) / 1000) # In[14]: # datetime.fromtimestamp(getMonthStart(now) / 1000) # In[15]: # datetime.fromtimestamp(getPrevMonthEnd(now) / 1000) # In[4]: def getDayStart(now : datetime): # ts = datetime.combine(now, datetime.min.time()).timestamp() * 1000 ts = (now.replace(hour=0, minute=0, second=0, microsecond=0).timestamp()) * 1000 return ts # In[10]: def getDayEnd(now : datetime): ts = (now.replace(hour=23, minute=59, second=59, microsecond=0).timestamp()) * 1000 return ts # In[7]: def getPrevDayStart(now : datetime): now = datetime.fromtimestamp((getDayStart(now) / 1000) - 1) ts = (now.replace(hour=0, minute=0, second=0, microsecond=0).timestamp()) * 1000 return ts def getPrevDayEnd(now : datetime): now = datetime.fromtimestamp((getDayStart(now) / 1000) - 1) ts = (now.replace(hour=0, minute=0, second=0, microsecond=0).timestamp()) * 1000 return ts + 23 * 3600 * 1000 + 59 * 60 * 1000 + 59 * 1000 # In[8]: now = datetime.now() # In[9]: # getDayStart(now) # In[11]: # getDayEnd(now) # In[12]: # getPrevDayStart(now) # In[ ]: