如何在Haxe中获取当前时间的毫秒数?

5
我需要一个函数,在CPP目标上返回本地时间的毫秒数。
我尝试使用Haxe的Date类,但Date.now()给出的是以秒为单位的时间。
3个回答

9

Sys.time() * 1000.0 - http://api.haxe.org/Sys.html#time

提供最精确的时间戳值(以秒为单位)

明确一下,我尝试过在cpp目标上使用此方法并获得了毫秒级别的分辨率。Sys 可用于 cpp、cs、java、macro、neko、php 和 python。


虽然我必须说,我发现这只有浮点精度有点令人不安。至少从C++来看,我们习惯了更好的精度。 - TheSHEEEP
1
如果你返回一个浮点数,跨平台实现单个方法会更容易。以下是cpp的实现方式:https://github.com/HaxeFoundation/hxcpp/blob/735bf91da2059dd2c510596f90f13dbf7345bf56/project/libs/std/Sys.cpp#L507 - Sam Twidale
他们真的应该修改文档并返回毫秒-否则无用,除非你看到这个答案。 - cancerbero
@TheSHEEEP 请记住,Haxe浮点数是64位的,因此您实际上可以获得56位整数精度。 - David Given

4
您可以尝试使用 Date.now().getTime(),但需要注意以下内容:

该方法会返回日期的时间戳。实际精度可能因平台而异,可能仅有每秒级别的精度。


不适用于cpp目标。也许我应该编辑我的问题。 - Enes F.
是的,这只能在cpp目标上给我每秒的精度,即:1453822269000、1453822270000... - Sam Twidale

0
获取时间戳的快速方法是使用 haxe.Timer.stamp() 方法。 示例:
import haxe.Timer;

var timestamp:Float = Timer.stamp(); // return a timestamp in seconds with fractions

请注意,值本身可能因平台而异,仅两个值之间的差异才有意义。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接