⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datetimeparser.py

📁 wxPython的基本示例程序
💻 PY
字号:
#----------------------------------------------------------------------------# Name:         datetimeparser.py## Purpose:      - Instantiate datetime.datetime/date instance from a string#                 date representation.#                 Uses dateutil from http://labix.org/python-dateutil.##               - Creates string representation of datetime/date instance.### Author:       Simon Toens## Created:      28-Feb-06# CVS-ID:# Copyright:    (c) 2005 ActiveGrid, Inc.# License:      wxWindows License#----------------------------------------------------------------------------import datetimetry:    import dateutil.parser    DATEUTIL_INSTALLED = Trueexcept ImportError:    DATEUTIL_INSTALLED = FalseISO_8601_DATE_FORMAT = "%Y-%m-%d"ISO_8601_TIME_FORMAT = "%H:%M:%S"ISO_8601_DATETIME_FORMAT = "%s %s" %(ISO_8601_DATE_FORMAT,                                     ISO_8601_TIME_FORMAT)DEFAULT_DATETIME = datetime.datetime(1, 1, 1, 0, 0, 0, 0)def format(dateobj, formatstr=None):    if (formatstr != None and _isDateTimeObject(dateobj)):        return dateobj.strftime(str(formatstr))    return str(dateobj)def parse(datestr, formatstr=None, asdate=False, astime=False):    """Instantiates and returns a datetime instance from the datestr datetime       representation.              Optionally, a format string may be used. The format is only loosely       interpreted, its only purpose beeing to determine if the year is first       or last in datestr, and whether the day is in front or follows the       month. If no formatstr is passed in, dateutil tries its best to parse       the datestr. The default date format is YYYY-mm-dd HH:SS.              If asdate is True, returns a date instance instead of a datetime       instance, if astime is True, returns a time instance instead of a       datetime instance."""               dayfirst, yearfirst = _getDayFirstAndYearFirst(formatstr)    rtn = None    try:        if DATEUTIL_INSTALLED:            rtn = dateutil.parser.parse(str(datestr), fuzzy=True,                                        dayfirst=dayfirst, yearfirst=yearfirst,                                        default=DEFAULT_DATETIME)        else:            rtn = DEFAULT_DATETIME    except:        rtn = DEFAULT_DATETIME    if (asdate and isinstance(rtn, datetime.datetime)):        rtn = datetime.date(rtn.year, rtn.month, rtn.day)    elif (astime and isinstance(rtn, datetime.datetime)):        rtn = datetime.time(rtn.hour, rtn.minute, rtn.second, rtn.microsecond)    return rtndef _isDateTimeObject(obj):    return (isinstance(obj, datetime.datetime) or            isinstance(obj, datetime.date) or            isinstance(obj, datetime.time))def _getDayFirstAndYearFirst(formatstr):    dayFirst = False    yearFirst = False        gotYear = False    gotMonth = False    gotDay = False    if (formatstr == None):        formatstr = ""        for c in formatstr:        if (c.lower() == "y"):            if (gotYear):                continue            if (not gotDay and not gotMonth):                yearFirst = True            gotYear = True        elif (c.lower() == "m"):            if (gotMonth):                continue            if (not gotDay):                dayFirst = False            gotMonth = True                    elif (c.lower() == "d"):            if (gotDay):                continue            if (not gotMonth):                dayFirst = True            gotDay = True            return dayFirst, yearFirst

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -