diff --git a/sickbeard/sbdatetime.py b/sickbeard/sbdatetime.py
index 4be1c355..4cc4673c 100644
--- a/sickbeard/sbdatetime.py
+++ b/sickbeard/sbdatetime.py
@@ -104,6 +104,14 @@ class static_or_instance(object):
class sbdatetime(datetime.datetime):
has_locale = True
+ @static_or_instance
+ def is_locale_eng(self):
+ return (sbdatetime.sbdatetime.sbfdate(datetime.datetime.now(), '%A').lower() in [
+ 'sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'] and
+ sbdatetime.sbdatetime.sbfdate(datetime.datetime.now(), '%B').lower() in [
+ 'january', 'february', 'march', 'april', 'may', 'june',
+ 'july', 'august', 'september', 'october', 'november', 'december'])
+
@static_or_instance
def convert_to_setting(self, dt=None):
obj = (dt, self)[self is not None]
@@ -121,7 +129,7 @@ class sbdatetime(datetime.datetime):
try:
if None is use_has_locale or use_has_locale:
locale.setlocale(locale.LC_TIME, locale_str)
- except:
+ except locale.Error:
if None is not use_has_locale:
sbdatetime.has_locale = False
pass
@@ -133,41 +141,44 @@ class sbdatetime(datetime.datetime):
sbdatetime.setlocale(setlocale=setlocale, use_has_locale=sbdatetime.has_locale, locale_str='us_US')
strt = ''
- try:
- obj = (dt, self)[self is not None]
- if None is not obj:
- tmpl = (((sickbeard.TIME_PRESET, sickbeard.TIME_PRESET_W_SECONDS)[show_seconds]),
- t_preset)[None is not t_preset]
- tmpl = (tmpl.replace(':%S', ''), tmpl)[show_seconds]
- strt = obj.strftime(tmpl.replace('%P', '%p'))
+ obj = (dt, self)[self is not None]
+ if None is not obj:
+ tmpl = (((sickbeard.TIME_PRESET, sickbeard.TIME_PRESET_W_SECONDS)[show_seconds]),
+ t_preset)[None is not t_preset]
+ tmpl = (tmpl.replace(':%S', ''), tmpl)[show_seconds]
+
+ pm_token = tmpl.replace('%P', '%p')
+ try:
+ strt = obj.strftime(pm_token)
+ except ValueError:
+ strt = obj.replace(tzinfo=None).strftime(pm_token)
+
+ if sickbeard.TRIM_ZERO:
+ strt = re.sub(r'^0(\d:\d\d)', r'\1', strt)
+
+ if re.search(r'(?im)%p$', tmpl):
+ if '%p' in tmpl:
+ strt = strt.upper()
+ elif '%P' in tmpl:
+ strt = strt.lower()
if sickbeard.TRIM_ZERO:
- strt = re.sub(r'^0(\d:\d\d)', r'\1', strt)
+ strt = re.sub(r'(?im)^(\d+)(?::00)?(\s?[ap]m)', r'\1\2', strt)
- if re.search(r'(?im)%p$', tmpl):
- if '%p' in tmpl:
- strt = strt.upper()
- elif '%P' in tmpl:
- strt = strt.lower()
+ if markup:
+ match = re.search(r'(?im)(\d{1,2})(?:(.)(\d\d)(?:(.)(\d\d))?)?(?:\s?([ap]m))?$', strt)
+ if match:
+ strt = ('%s%s%s%s%s%s' % (
+ ('%s' % match.group(1), '')[None is match.group(1)],
+ ('%s' % match.group(2), '')[None is match.group(2)],
+ ('%s' % match.group(3), '')[None is match.group(3)],
+ ('%s' % match.group(4), '')[None is match.group(4)],
+ ('%s' % match.group(5), '')[None is match.group(5)],
+ ('%s' % match.group(6), '')[None is match.group(6)]))
- if sickbeard.TRIM_ZERO:
- strt = re.sub(r'(?im)^(\d+)(?::00)?(\s?[ap]m)', r'\1\2', strt)
-
- if markup:
- match = re.search(r'(?im)(\d{1,2})(?:(.)(\d\d)(?:(.)(\d\d))?)?(?:\s?([ap]m))?$', strt)
- if match:
- strt = ('%s%s%s%s%s%s' % (
- ('%s' % match.group(1), '')[None is match.group(1)],
- ('%s' % match.group(2), '')[None is match.group(2)],
- ('%s' % match.group(3), '')[None is match.group(3)],
- ('%s' % match.group(4), '')[None is match.group(4)],
- ('%s' % match.group(5), '')[None is match.group(5)],
- ('%s' % match.group(6), '')[None is match.group(6)]))
-
- finally:
- sbdatetime.setlocale(setlocale=setlocale, use_has_locale=sbdatetime.has_locale)
- return strt
+ sbdatetime.setlocale(setlocale=setlocale, use_has_locale=sbdatetime.has_locale)
+ return strt
# display Date in SickGear Format
@static_or_instance
@@ -179,7 +190,11 @@ class sbdatetime(datetime.datetime):
try:
obj = (dt, self)[self is not None]
if None is not obj:
- strd = obj.strftime((sickbeard.DATE_PRESET, d_preset)[None is not d_preset])
+ preset = (sickbeard.DATE_PRESET, d_preset)[None is not d_preset]
+ try:
+ strd = obj.strftime(preset)
+ except ValueError:
+ strd = obj.replace(tzinfo=None).strftime(preset)
finally:
sbdatetime.setlocale(setlocale=setlocale)
@@ -195,8 +210,12 @@ class sbdatetime(datetime.datetime):
obj = (dt, self)[self is not None]
try:
if None is not obj:
- strd = u'%s, %s' % (obj.strftime((sickbeard.DATE_PRESET, d_preset)[None is not d_preset]),
- sbdatetime.sbftime(dt, show_seconds, t_preset, False, markup))
+ preset = (sickbeard.DATE_PRESET, d_preset)[None is not d_preset]
+ try:
+ strd = obj.strftime(preset),
+ except ValueError:
+ strd = obj.replace(tzinfo=None).strftime(preset)
+ strd = u'%s, %s' % (strd, sbdatetime.sbftime(dt, show_seconds, t_preset, False, markup))
finally:
sbdatetime.setlocale(use_has_locale=sbdatetime.has_locale)