On 03/06/2015 05:08 PM, Thomas De Schampheleire wrote:
On Fri, Mar 6, 2015 at 4:31 PM, Mads Kiilerich <[email protected]> wrote:
On 03/06/2015 02:03 PM, Thomas De Schampheleire wrote:
On Thu, Feb 26, 2015 at 10:51 PM, Thomas De Schampheleire
<[email protected]> wrote:
# HG changeset patch
# User Thomas De Schampheleire <[email protected]>
# Date 1424987487 -3600
#      Thu Feb 26 22:51:27 2015 +0100
# Node ID d80090d1053468f6b84eb8ef41c62446995ddb73
# Parent  c7f97c237dacbed8770d4aacf20feb8175ee8d99
date representation: use ISO8601 rather than a specific locale

Dates, in particular in technical systems like Kallithea, are
better shown in a clear concise format like ISO8601 (YYYY-MM-DD)
than in a verbose format like 'Thu, Feb 26 2015'.

This commit changes all dates to ISO8601.

---
If desired, we could create two functions: one that returns ISO format
and
another for the locale format. Depending on the usage, one or the other
is
shown. I'm not very fond of that though, it looks inconsistent.

diff --git a/kallithea/lib/helpers.py b/kallithea/lib/helpers.py
--- a/kallithea/lib/helpers.py
+++ b/kallithea/lib/helpers.py
@@ -469,7 +469,7 @@

   def fmt_date(date):
       if date:
-        _fmt = u"%a, %d %b %Y %H:%M:%S".encode('utf8')

Heh - making a const unicode string with all ascii chars and then encoding
it to utf8 ... that seems a bit convoluted ;-)

It does however raise the question of how this function was supposed to
handle locales where the name of the day or month had unicode chars.

With your changes it will always only be ascii chars and it would perhaps be
more clear to use unicode(...) instead of .decode.

+        _fmt = u"%Y-%m-%d %H:%M:%S".encode('utf8')
           return date.strftime(_fmt).decode('utf8')
I'm not very familiar with unicode and didn't really understand that
part of the original code, to be honest.

Do you mean this:

_fmt = "%Y-%m-%d %H:%M:%S"
return unicode(date.strftime(_fmt))

and thus finally simply:

return unicode(date.strftime(DATETIME_FORMAT))

Yes, i did.

That will however apparently also put an "invisible" constraint on DATETIME_FORMAT; it must be unicode-able without specifying encoding.

I think the big unknown for me is whether datetime.datatime strftime ever can be localized and return unicode strings or if it always will be in english and thus be pure ascii that trivially converts to unicode. Perhaps also whether it will return a unicode string if it is given a unicode format string.

/Mads
_______________________________________________
kallithea-general mailing list
[email protected]
http://lists.sfconservancy.org/mailman/listinfo/kallithea-general

Reply via email to