Get current date and time with std.datetime
Joel via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Aug 22 02:35:06 PDT 2016
On Friday, 1 July 2016 at 15:28:04 UTC, Zekereth wrote:
> On Thursday, 30 June 2016 at 21:18:22 UTC, Luke Picardo wrote:
>>
>> Why is it so hard to simply get the current date and time
>> formatted properly in a string?
>>
>> There are no examples of this in your documentation yet this
>> is probably one of the most used cases.
>
> To get the current time, use Clock.currTime. It will return the
> current time as a SysTime. To print it, toString is sufficient,
> but if using toISOString, toISOExtString, or toSimpleString,
> use the corresponding fromISOString, fromISOExtString, or
> fromSimpleString to create a SysTime from the string.
>
> auto currentTime = Clock.currTime();
> auto timeString = currentTime.toISOExtString();
> auto restoredTime = SysTime.fromISOExtString(timeString);
This is what I use:
auto getDateTimeString() {
import std.string;
import std.datetime;
DateTime dateTime = cast(DateTime)Clock.currTime();
with(dateTime)
{
return format(
"%s " // day of the week (eg. 'Saturday')
"%s.%02s.%s " // date, month, year
"[%s:%02s:%02s%s]", // hour:minute:second am/pm
split("Sunday Monday Tuesday Wednesday Thursday Friday
Saturday")[dayOfWeek],
day, cast(int)month, year,
hour == 0 || hour == 12 ? 12 : hour % 12, minute, second,
hour <= 11 ? "am" : "pm");
}
}
More information about the Digitalmars-d-learn
mailing list