from datetime import datetime, timedelta # Format date def format_date_to_string(date, format='%d %b, %Y'): return date.strftime(format) # Format date or time def format_datetime_to_sting(dt, format='%d %b, %Y %H:%M:%S'): return dt.strftime(format) # Get current date def get_current_date(): return datetime.now() # Get current time def get_current_time(): return datetime.now().time() def get_date_range(days): end_date = datetime.now() start_date = end_date - timedelta(days=int(days)) return start_date, end_date # Get current date in a specific timezone from pytz import timezone def get_current_date_in_timezone(timezone_str='UTC'): tz = timezone(timezone_str) return datetime.now(tz) # Convert string to datetime def string_to_date(date_string, format='%Y-%m-%d'): return datetime.strptime(date_string, format) # Convert string to datetime def string_to_datetime(datetime_string, format='%Y-%m-%d %H:%M:%S'): return datetime.strptime(datetime_string, format) # Get difference between two dates def get_date_difference(date1, date2): return abs(date2 - date1) # Get difference between two datetimes def get_datetime_difference(datetime1, datetime2): return abs(datetime2 - datetime1) # Add days to a given date def add_days_to_date(date, days): return date + timedelta(days=days) # Subtract days from a given date def subtract_days_from_date(date, days): return date - timedelta(days=days) # Check if a year is a leap year def is_leap_year(year): return (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) # Get the last day of a given month and year def last_day_of_month(year, month): if month == 12: year += 1 month = 1 else: month += 1 return datetime(year, month, 1) - timedelta(days=1) # Check if a date is within a specific range def is_date_within_range(date, start_date, end_date): return start_date <= date <= end_date