一些与datetime相关的函数的使用。。。。
import locale
import datetime
one_day = datetime.timedelta(days=1)
def get_year_and_month_from_date(date):
year_and_month = date.strftime('%Y-%m')
assert len(year_and_month) == 7
return year_and_month
def get_date_from_date_string(date_string):
date_array = date_string.split('-')
year, month, day = map(int, date_array)
return datetime.date(year, month, day)
# Number of days per month (except for February in leap years)
month_days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
def isleap(year):
"""Return 1 for leap years, 0 for non-leap years."""
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
def get_number_of_days(year, month):
'''
Return the number of days in a given month of a given year
'''
days = month_days[month] + (month == 2 and isleap(year))
return days
def format_date(format_string, date=None):
if date is None:
date = datetime.datetime.now()
try:
date_string = date.strftime(format_string)
except ValueError:
# This happens if the format string ends with "%"
date_string = _('Incorrect date format')
# Turn date into unicode string
locale_name, locale_encoding = locale.getlocale()
# locale_encoding may be None may if the value cannot be determined
locale_encoding = locale_encoding or 'UTF-8'
date_string = date_string.decode(locale_encoding, 'replace')
return date_string