Proposal for custom time string formatting in std.datetime
Stewart Gordon
smjg_1998 at yahoo.com
Thu Dec 22 03:20:11 PST 2011
On 22/12/2011 03:41, Jonathan M Davis wrote:
<snip>
> Stewart Gordon has a library that takes a different approach (
> http://pr.stewartsplace.org.uk/d/sutil/datetime_format.html ). It does away
> with % flags and uses maximul munch with each of the flags being name such that
> they don't overlap in a way that would make certain combinations of flags
> impossible.
If you mean such things as writing a datum twice consecutively in two different formats,
it can be done using an empty literal. For example, "Mmm''m" would today generate
"Dec12". Not that I can see any use for such a format, just showing that it can be done.
> It then requires that characters which are not part of the flags be
> surrounded by single quotes.
Wrong. It requires _letters_ that aren't flags to be literalised, and that can be done
either by surrounding with '...' or by prefixing with `. Other characters that have no
meaning are automatically literal.
> It's an interesting approach, but it isn't as
> flexible as it could be because of its use of maximul munch instead of % flags.
How do you mean?
> So, I've come up with something new which tries to take the best of both. On
> the whole, I think that it's fairly straightforward, and the flags are
> generally recognizable and memorable (though there are a lot). It's also
> definitely extremely flexible (e.g. you can pass it functions to generate
> portions of the string if the existing flags don't get you quite what you
> need). But I'd like some feedback on it before I spend a lot of time on the
> implementation.
>
> This page has the docs for std.datetime with everything else but the proposed
> custom formatting functions for SysTime stripped out of it:
>
> http://jmdavis.github.com/d-programming-language.org/std_datetime.html
Looks complicated compared to mine at first sight. Maybe I just need to spend a bit of
time looking at it in more detail.
Stewart.
More information about the Digitalmars-d
mailing list