作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何获取当前 unix 时间戳(自 1970 年 1 月 1 日以来的毫秒数)作为 long
变量?
换句话说,我将如何实现这个功能?
long getUnixTimestampMillis() {
}
最佳答案
更新答案!
std.datetime.systime 中有两个函数:stdTimeToUnixTime
和 unixTimeToStdTime
,它们在 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/
我是一名优秀的程序员,十分优秀!