Proposal for custom time string formatting in std.datetime
Jonathan M Davis
jmdavisProg at gmx.com
Fri Dec 23 13:24:46 PST 2011
On Friday, December 23, 2011 12:02:26 Stewart Gordon wrote:
> What is the use case for including a full date in some externally defined
> format within a longer formatted date string? ISTM the way to do this is
> to define a function that just generates this format straight off. In my
> library, toShortFormatString and toLongFormatString are already examples of
> this.
>
> > It also means that you can't reuse letters.
>
> At the moment only 12 letters are used. I can't see the whole alphabet
> being used up any time in the foreseeable future.
It's not that I want to put %ctime and %mpeg7 in the same string. It's that I
don't want to have to go define a function for every single one of them. It's a
much smaller hit to the API to have flags for them.
Another alternative is to supply an enum of format strings for a variety of
formats, though that also expands the API a bit (not as badly much though).
That may a be better approach for known formats. That doesn't work as well
though in cases where the format strings to toCustomString and
fromCustomString aren't identical (which happens in the case of mpeg-7, since
it uses %cond). So, I don't know. Regardless, I think that the abliity to have
more or less arbitrary strings used for flags is valuable.
> I think I could expand my scheme to include ISO signed-year notation easily
> enough. In the mpeg-7 standard, does the denominator of the fractional
> second have to be the smallest possible power of 10, or is F20/1000 or
> F0/1000 allowed just as well?
If it's 0, there is no fraction, just like there's no decimal if it's 0 for
ISO. I don't _think_ that it has to be the smallest possible power of 10, but
I don't remember at the moment. I'm going to have to track down the info on
the spec again. I'd figured it out for work previously, but unfortunately I
lost whatever bookmarks I had with the info.
I don't want to shell out money for the spec if I don't have to. Even if I
were willing to buy it, it's sold in 12 parts, and I'd probably end up buying
several parts before I found the one with the definition of its time format,
wasting that much more money. So, I'll have to go digging online again.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list