importdatetimeimporttimeimportcalendardefget_day_begin(date=None):""" Get date representing some date (or current date) begin without timezone :return: """ifdateisNone:date=datetime.datetime.now()date=date.replace(tzinfo=None,hour=0,minute=0,second=0,microsecond=0)returndatedefget_date_without_timezone(date=None):""" Get date for date (or current date) without timezone :return: """ifdateisNone:date=datetime.datetime.now()date=datetime.datetime.now()date=date.replace(tzinfo=None)returndatedefget_prev_month_first(date:datetime=None):""" Return begin of the first day from previous month :return: """ifdateisNone:date=get_day_begin()first_day=datetime.date(day=1,month=date.month,year=date.year)prev_month=first_day-datetime.timedelta(days=1)returndatetime.datetime(year=prev_month.year,month=prev_month.month,day=1)defconvert_to_datetime(date_str,date_format):""" Return datetime object by converting string with given format """assertisinstance(date_str,str)result=datetime.datetime.strptime(date_str,date_format)assertisinstance(result,datetime.datetime)returnresultdefconvert_to_string(date,date_format):""" Return string representation in given format for the date """assertisinstance(date,datetime.datetime)result=date.strftime(date_format)assertisinstance(result,str)returnresultdeftimestruct_to_datetime(time_struct):""" Converct time_struct e.g. time.localtime() to datetime """assertisinstance(time_struct,time.struct_time)result=datetime.datetime.fromtimestamp(time.mktime(time_struct))assertisinstance(result,datetime.datetime)returnresultdefget_date_info(date=None):""" Print some useful properties of the given date """ifdateisNone:date=datetime.datetime.now()print('Day number: %s'%date.day)print('Month number: %s'%date.month)print('Current year: %s'%date.year)print('Day of the year: %s'%date.timetuple().tm_yday)print('Day of week number: %s'%date.isoweekday())print('Week of year number: %s'%date.isocalendar()[1])print('Is leap year: %s'%calendar.isleap(date.year))if__name__=='__main__':date_str='23/10/2016 15:32'# 23 of October 2016 3:32 P.M.date_format='%d/%m/%Y %H:%M'new_date_format='%x%X'the_date=convert_to_datetime(date_str,date_format)print(the_date)print(convert_to_string(the_date,new_date_format))time_struct=time.localtime()print(time_struct)print(timestruct_to_datetime(time_struct))the_date=datetime.datetime.now()print(the_date)the_date=the_date.replace(day=the_date.day+1)today=datetime.date.today()get_date_info()
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 187 189 191 193 195 197 199 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 187 189 191 193 195 197 199 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 187 189 191 193 195 197 199