Get milliseconds from time and construct time based on milliseconds

bauss jacobbauss at gmail.com
Wed May 29 07:10:02 UTC 2024


On Tuesday, 28 May 2024 at 23:18:46 UTC, Steven Schveighoffer 
wrote:
> On Tuesday, 28 May 2024 at 18:41:02 UTC, bauss wrote:
>> On Tuesday, 28 May 2024 at 18:29:17 UTC, Ferhat Kurtulmuş 
>> wrote:
>>> On Tuesday, 28 May 2024 at 17:37:42 UTC, bauss wrote:
>>>> I have two questions that I can't seem to find a solution to 
>>>> after looking at std.datetime.
>>>>
>>>> First question is how do I get the current time but in 
>>>> milliseconds?
>>>>
>>>> Second is how do I construct a time ex. systime or datetime 
>>>> based on milliseconds?
>>>>
>>>> Thanks
>>>
>>> Unixtime might be what you want:
>>>
>>> import std;
>>>
>>> import std.datetime;
>>> import std.stdio;
>>>
>>>     void main() {
>>>         // Get the current time in the UTC time zone
>>>         auto currentTime = Clock.currTime();
>>>
>>>         // Convert the time to the Unix epoch 
>>> (1970-01-01T00:00:00Z)
>>>         Duration unixTime = currentTime - 
>>> SysTime(DateTime(1970, 1, 1), UTC());
>
> You can do `SysTime(unixTimeToStdTime(0))` to get a SysTime 
> that is at the unix epoch.
>
>>
>> Also figured out the second question based on your result.
>>
>> Simply doing:
>>
>> ```
>> SysTime(DateTime(1970, 1, 1), UTC()) + 
>> dur!"msecs"(milliseconds)
>> ```
>>
>> Seems to work.
>
> Note there is an `msecs` function:
>
> ```d
> SysTime(unixTimeToStdTime(0)) + milliseconds.msecs;
> ```
>
> https://dlang.org/phobos/std_datetime_systime.html#unixTimeToStdTime
> https://dlang.org/phobos/core_time.html#msecs
>
> -Steve

Thanks! That's a lot cleaner


More information about the Digitalmars-d-learn mailing list