在Vala中使用此库:
http://valadoc.org/#!api=glib-2.0/GLib.DateTime
GLib.DateTime now = new GLib.DateTime.now_local();
var sec = now.to_unix()
var msec = (sec * 1000) + now.get_microsecond();
Run Code Online (Sandbox Code Playgroud)
这是以毫秒为单位获取当前时间的正确方法吗?
有没有更好的办法 ?
nem*_*equ 10
GLib.DateTime是一种有效的方法,当你请求本地时间然后将其转换为unix时间(隐式转换为UTC)时,有点奇怪.然而,真正的问题是你将毫秒(1/1000秒)和微秒(1/1000000秒)混为一谈.所以将最后一行更改为
var msec = (sec * 1000) + (now.get_microsecond () / 1000);
Run Code Online (Sandbox Code Playgroud)
或者,更简单的方法是使用GLib.get_real_time:
int64 msec = GLib.get_real_time () / 1000;
Run Code Online (Sandbox Code Playgroud)
根据您的使用情况,您可能需要考虑使用单调时间而不是实时(请参阅GLib.get_monotonic_time
| 归档时间: |
|
| 查看次数: |
1149 次 |
| 最近记录: |