mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Add internal date formatter
This commit is contained in:
parent
e7c666d60f
commit
210d81c626
@ -17,7 +17,7 @@ from PyQt4.Qt import QColor, Qt, QModelIndex, QSize, \
|
|||||||
|
|
||||||
from calibre.gui2 import UNDEFINED_QDATE
|
from calibre.gui2 import UNDEFINED_QDATE
|
||||||
from calibre.gui2.widgets import EnLineEdit, TagsLineEdit
|
from calibre.gui2.widgets import EnLineEdit, TagsLineEdit
|
||||||
from calibre.utils.date import now
|
from calibre.utils.date import now, format_date
|
||||||
from calibre.utils.config import tweaks
|
from calibre.utils.config import tweaks
|
||||||
from calibre.gui2.dialogs.comments_dialog import CommentsDialog
|
from calibre.gui2.dialogs.comments_dialog import CommentsDialog
|
||||||
|
|
||||||
@ -98,7 +98,7 @@ class DateDelegate(QStyledItemDelegate): # {{{
|
|||||||
d = val.toDate()
|
d = val.toDate()
|
||||||
if d == UNDEFINED_QDATE:
|
if d == UNDEFINED_QDATE:
|
||||||
return ''
|
return ''
|
||||||
return d.toString('dd MMM yyyy')
|
return format_date(d.toPyDate(), 'dd MMM yyyy')
|
||||||
|
|
||||||
def createEditor(self, parent, option, index):
|
def createEditor(self, parent, option, index):
|
||||||
qde = QStyledItemDelegate.createEditor(self, parent, option, index)
|
qde = QStyledItemDelegate.createEditor(self, parent, option, index)
|
||||||
@ -121,7 +121,7 @@ class PubDateDelegate(QStyledItemDelegate): # {{{
|
|||||||
format = tweaks['gui_pubdate_display_format']
|
format = tweaks['gui_pubdate_display_format']
|
||||||
if format is None:
|
if format is None:
|
||||||
format = 'MMM yyyy'
|
format = 'MMM yyyy'
|
||||||
return d.toString(format)
|
return format_date(d.toPyDate(), format)
|
||||||
|
|
||||||
def createEditor(self, parent, option, index):
|
def createEditor(self, parent, option, index):
|
||||||
qde = QStyledItemDelegate.createEditor(self, parent, option, index)
|
qde = QStyledItemDelegate.createEditor(self, parent, option, index)
|
||||||
@ -195,7 +195,7 @@ class CcDateDelegate(QStyledItemDelegate): # {{{
|
|||||||
d = val.toDate()
|
d = val.toDate()
|
||||||
if d == UNDEFINED_QDATE:
|
if d == UNDEFINED_QDATE:
|
||||||
return ''
|
return ''
|
||||||
return d.toString(self.format)
|
return format_date(d.toPyDate(), self.format)
|
||||||
|
|
||||||
def createEditor(self, parent, option, index):
|
def createEditor(self, parent, option, index):
|
||||||
qde = QStyledItemDelegate.createEditor(self, parent, option, index)
|
qde = QStyledItemDelegate.createEditor(self, parent, option, index)
|
||||||
|
@ -6,6 +6,7 @@ __license__ = 'GPL v3'
|
|||||||
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
|
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
|
import re
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from dateutil.parser import parse
|
from dateutil.parser import parse
|
||||||
@ -113,3 +114,27 @@ def utcnow():
|
|||||||
|
|
||||||
def utcfromtimestamp(stamp):
|
def utcfromtimestamp(stamp):
|
||||||
return datetime.utcfromtimestamp(stamp).replace(tzinfo=_utc_tz)
|
return datetime.utcfromtimestamp(stamp).replace(tzinfo=_utc_tz)
|
||||||
|
|
||||||
|
def format_date(dt, format):
|
||||||
|
''' Return a date formatted as a string using a subset of Qt's formatting codes '''
|
||||||
|
def format_day(mo):
|
||||||
|
l = len(mo.group(0))
|
||||||
|
if l == 1: return '%d'%dt.day
|
||||||
|
if l == 2: return '%02d'%dt.day
|
||||||
|
if l == 3: return dt.strftime('%a')
|
||||||
|
return dt.strftime('%A')
|
||||||
|
|
||||||
|
def format_month(mo):
|
||||||
|
l = len(mo.group(0))
|
||||||
|
if l == 1: return '%d'%dt.month
|
||||||
|
if l == 2: return '%02d'%dt.month
|
||||||
|
if l == 3: return dt.strftime('%b')
|
||||||
|
return dt.strftime('%B')
|
||||||
|
|
||||||
|
def format_year(mo):
|
||||||
|
if len(mo.group(0)) == 2: return '%02d'%(dt.year % 100)
|
||||||
|
return '%04d'%dt.year
|
||||||
|
|
||||||
|
format = re.sub('d{1,4}', format_day, format)
|
||||||
|
format = re.sub('M{1,4}', format_month, format)
|
||||||
|
return re.sub('yyyy|yy', format_year, format)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user