gpt4 book ai didi

d - 如何在 D 中以毫秒为单位获取当前 Unix 时间戳?

转载 作者:行者123 更新时间:2023-12-05 01:23:25 24 4
gpt4 key购买 nike

如何获取当前 unix 时间戳(自 1970 年 1 月 1 日以来的毫秒数)作为 long 变量?

换句话说,我将如何实现这个功能?

long getUnixTimestampMillis() {

}

最佳答案

更新答案!

std.datetime.systime 中有两个函数:stdTimeToUnixTimeunixTimeToStdTime,它们在 unix 时间(自 1970-1 以来的)之间进行转换-1) 和 stdTime(自 Proleptic Gregorian Calendar 纪元以来的百纳秒)参见 unixTimeToStdTime 的文档

如果您的目的是将值传递给接受典型 unix 时间(以秒为单位,而不是毫秒)的函数,那么您可以使用以下函数:

time_t getUnixTimestamp() {
import std.datetime;
return Clock.currTime().stdTime().stdTimeToUnixTime();
}

但是,如果您的目标确实是自 unix 纪元以来的毫秒数,则 OP 的代码是正确的。但这是一个不依赖于 unix 纪元知识的压缩版本(这就是 stdTimeToUnixTime 内部工作的方式)。关键是 SysTime(unixTimeToStdTime(0)) 给出了一个设置在 unix 纪元的 SysTime。从那里你可以做任何你喜欢的数学。

long getUnixTimestampMillis() {
import std.datetime;
return (Clock.currTime() - SysTime(unixTimeToStdTime(0)))
.total!"msecs";
}

关于d - 如何在 D 中以毫秒为单位获取当前 Unix 时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72369882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com