C#和Java脚本中的Ticks转换不同

问题描述 投票:-3回答:2

我想为某个值生成唯一的数字。因此,我尝试进行刻度转换。

以前,我从服务器端生成唯一的编号,该编号来自c#。因此,我使用以下代码行生成

ConfirmationNumber  = DateTime.Now.Ticks;

它返回18位整数值。为了进行交叉检查,我检查了https://tickstodatetime.azurewebsites.net/中的刻度值。它给出了确切的DateTime。

现在,从某些业务角度来看,我想从UI(javascript)生成相同的唯一编号。所以我尝试如下

ConfirmationNumber = new Date().getTime();

它返回13位整数值。再次,我检查了刻度线转换网站。它返回错误的DateTime。

因此,如何获得C#为javascript中的DateTime.Now.Ticks提供的值?

javascript c# converters
2个回答
0
投票

您正在尝试比较两个完全不同的事物。

DateTime.Now.Ticks

单个滴答声代表一百纳秒或一百万分之一秒。一毫秒内有10,000个滴答声,一秒内有1,000万个滴答声。

此属性的值表示自0001年1月1日午夜12:00:00(公历为0001年1月1日0:00:00 UTC)以来经过的100纳秒间隔数,代表DateTime.MinValue。它不包括归因于leap秒的刻度数。

DateTime.Now.Ticks

getTime()方法返回自从Unix纪元[1970年1月1日]起的毫秒数*

因此,您正在将自0001年1月1日以来的毫秒数乘以10,000与自1970年1月1日以来的毫秒数进行比较。当然,它们将有所不同。


-1
投票

这正是您在代码中所需要的new Date().getTime()

JavaScript报价=(C#报价/ 10000)

© www.soinside.com 2019 - 2024. All rights reserved.