Source code for gramps.gen.datehandler._dateutils

#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2004-2006  Donald N. Allingham
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#

"""
Class handling language-specific selection for date parser and displayer.
"""

#-------------------------------------------------------------------------
#
# Python modules
#
#-------------------------------------------------------------------------
import time

#-------------------------------------------------------------------------
#
# GRAMPS modules
#
#-------------------------------------------------------------------------
from ..lib.date import Date
from . import LANG_TO_DISPLAY, LANG, parser, displayer

#--------------------------------------------------------------
#
# Convenience functions
#
#--------------------------------------------------------------
[docs]def get_date_formats(): """ Return the list of supported formats for date parsers and displayers. """ try: return LANG_TO_DISPLAY[LANG].formats except: return LANG_TO_DISPLAY["C"].formats
[docs]def set_format(value): try: displayer.set_format(value) except: pass
[docs]def set_date(date_base, text) : """ Set the date of the :class:`.DateBase` instance. The date is parsed into a :class:`.Date` instance. :param date_base: The :class:`.DateBase` instance to set the date to. :type date_base: :class:`.DateBase` :param text: The text to use for the text string in date :type text: str """ parser.set_date(date_base.get_date_object(), text)
[docs]def get_date(date_base) : """ Return a string representation of the date of the :class:`.DateBase` instance. This representation is based off the default date display format determined by the locale's :class:`.DateDisplay` instance. :return: Returns a string representing the :class:`.DateBase` date :rtype: str """ return displayer.display(date_base.get_date_object())
[docs]def get_date_valid(date_base): date_obj = date_base.get_date_object() return date_obj.get_valid()
[docs]def format_time(secs): """ Format a time in seconds as a date in the preferred date format and a 24 hour time as hh:mm:ss. """ t = time.localtime(secs) d = Date(t.tm_year, t.tm_mon, t.tm_mday) return displayer.display(d) + time.strftime(' %X', t)