On Tue, Apr 21, 2009 at 10:31 AM, Ashley Yakeley<ashley@semantic.org> wrote:
Magnus Therning wrote:
On Mon, Apr 20, 2009 at 11:27 PM, Deniz Dogan <deniz.a.m.dogan@gmail.com> wrote:
Hi
Is there a bug in the old-locale package? I tried the following simple program:
import Data.Time import System.Locale
main = do time <- getCurrentTime putStrLn $ formatTime defaultTimeLocale rfc822DateFormat time
The above program prints:
Mon, d Apr 2009 15:23:56 UTC
Notice "Mon, d", where "d" should be the day of the month. Looking at the source code in the package, I see:
rfc822DateFormat = "%a, %_d %b %Y %H:%M:%S %Z"
So what's up with %_d?
That looks like an error to me. According to the date(1) manpage, an underbar pads with spaces.
% date +"%a, %_d %b %Y %H:%M:%S %Z" Tue, 21 Apr 2009 00:25:50 SGT
It looks like old-locale and time have different ideas of date formats. Possibly this should be fixed in the time package.
old-time handles the padding by eating it. The attached patch does the same for the time package.
From reading the date(1) manpage, there are some other parts of the format-spec not supported. But we at least parse the format-specs we ship with.
Antoine