C语言 将 elisp unixtime 转换为 js-date 对象



对于特定的应用程序,我需要在Javascript中处理elisp内部unix时间日期格式。Elisp(当前时间)带有以下特殊格式:

current-time 是 'editfns.c' 中的一个内置函数。 (当前时间)

返回当前时间,作为自 1970-01-01 00:00:00 以来的秒数。 时间以整数列表的形式返回(高低 USEC PSEC)。 HIGH 具有秒中最重要的位,而 LOW 具有 最低有效 16 位。 USEC和PSEC是微秒和 皮秒计数。

所以我得到了一个时间字符串:[21039,58064,0](21039 58064 0)的 json 表示)。如何使用javascript将其转换为JS Date对象?它在 emacs 中很容易,但这不是一个选择

Date(21039 * Math.pow(2, 16) + 58064);

请注意,您不需要完全以这种方式编写它,Math.pow(2, 16)因为这是一个常量表达式。这样你就可以了解发生了什么。

另请注意,您不能对浮点数使用按位运算(在 JavaScript 术语中Number大于 2^32)。所以你必须乘以而不是移位,求和而不是"或"。

最新更新