# 時間加減,月/日 import calendar import math def get_recent_month(dt, months): # 這里的months 參數傳入的是正數表示往后推,負數表示往前推 month = dt.month - 1 + months year = dt.year + math.floor(month / 12) month = month % 12 + 1 day = min(dt.day, calendar.monthrange(year, month)[1]) recent_date = datetime.date(year, month, day).strftime('%Y%m%d') return recent_date def get_recent_day(dt, days): # days 負數是向前推,正數是向后推 # datetime.timedelta 兩個時間之間的時間差 delta = datetime.timedelta(days=days) # 獲取delta前的時間 beginPushDate = (dt + delta).strftime('%Y%m%d') return beginPushDate dt = datetime.datetime.strptime(str('20190101'), '%Y%m%d') # 當前日期前推3個月 print(get_recent_month(dt, -3)) # 當前日期后推3個月 print(get_recent_month(dt, 3)) # 當前日期前推3天 print(get_recent_day(dt, -3)) # 當前日期后推3天 print(get_recent_day(dt, 3))
#時間加減 周/日/時/分/毫秒 import datetime print(datetime.datetime.now()) #返回 2016-08-19 12:47:03.941925 print(datetime.date.fromtimestamp(time.time()) ) # 時間戳直接轉成日期格式 2016-08-19 print(datetime.datetime.now() ) print(datetime.datetime.now() + datetime.timedelta(3)) #當前時間+3天 print(datetime.datetime.now() + datetime.timedelta(-3)) #當前時間-3天 print(datetime.datetime.now() + datetime.timedelta(hours=3)) #當前時間+3小時 print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #當前時間+30分 c_time = datetime.datetime.now() print(c_time.replace(year=2019, month=3, day=20,hour=2, minute=3)) #時間替換
import datetime import calendar import math def get_now_dateTime(): ''' 獲取當前時間 xx-xx-xx xx:xx:xx ''' time_now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') return time_now def get_endLastYear(endDate): ''' 獲取上年年末,'20190321'上一年年末是'20181231' :param endDate: :return: ''' beginYear_temp = int(str(endDate)[0:4]) - 1 beginYear = str(beginYear_temp) + '1231' return beginYear def get_beginYearDate(endDate): ''' 本年年初,'20190321'年初'20190101' :param endDate: :return: ''' beginYear_temp = int(str(endDate)[0:4]) beginYear = str(beginYear_temp) + '0101' return beginYear def get_beginPushDate(bizDate, days): ''' 獲取beginDate的days天前的時間 :param bizDate: :param days: days 負數是向前推,正數是向后推 :return: ''' dt = datetime.datetime.strptime(str(bizDate), '%Y%m%d') # datetime.timedelta 兩個時間之間的時間差 delta = datetime.timedelta(days=days) # 獲取delta前的時間 beginPushDate = (dt + delta).strftime('%Y%m%d') return beginPushDate def get_recent_month(bizDate, months): ''' 獲取bizDate的months月前的時間 :param bizDate: :param months: months 參數傳入的是正數表示往后推,負數表示往前推 :return: ''' dt = datetime.datetime.strptime(str(bizDate), '%Y%m%d') month = dt.month - 1 + months year = dt.year + math.floor(month / 12) month = month % 12 + 1 day = min(dt.day, calendar.monthrange(year, month)[1]) recent_date = datetime.date(year, month, day).strftime('%Y%m%d') return recent_date