Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从dart中的Epo纪元开始,我如何获得刻度?_Dart - Fatal编程技术网

从dart中的Epo纪元开始,我如何获得刻度?

从dart中的Epo纪元开始,我如何获得刻度?,dart,Dart,我在dart lang的Datetime中找到了millissecondssinceepoch,但我的请求需要自Epoch以来的刻度。那么,如何将DateTime.now()转换为纪元以来的刻度呢?因此刻度在.NET中显然定义为: 一个滴答声代表一百纳秒或一千万分之一秒。一毫秒内有10000个滴答声(参见滴答声毫秒),一秒钟内有1000万个滴答声 此属性的值表示自公历0001年1月1日午夜12:00:00以来经过的100纳秒间隔数,表示最小值。它不包括可归因于闰秒的滴答数 在这个问题()中作为

我在dart lang的
Datetime
中找到了
millissecondssinceepoch
,但我的请求需要自Epoch以来的刻度。那么,如何将
DateTime.now()
转换为纪元以来的刻度呢?

因此
刻度在.NET中显然定义为:

一个滴答声代表一百纳秒或一千万分之一秒。一毫秒内有10000个滴答声(参见滴答声毫秒),一秒钟内有1000万个滴答声

此属性的值表示自公历0001年1月1日午夜12:00:00以来经过的100纳秒间隔数,表示最小值。它不包括可归因于闰秒的滴答数

在这个问题()中作为示例链接的网页中,我们可以看到JavaScript不理解滴答声,因此网页正在将滴答声转换为毫秒

因此,我颠倒了这一点,并举了以下例子:

void main() {
  print(DateTime.now().ticks); // 637318676156933690
}

const _epochTicks = 621355968000000000;
extension TicksOnDateTime on DateTime {
  int get ticks => this.microsecondsSinceEpoch * 10 + _epochTicks;
}

你说的“滴答”是什么意思?秒?例如:637310562843838745->2020-07-22​T23:11:24.383Z。我用。现在我需要将DateTime.Now转换为ticks。在被ISO8601字符串弄糊涂之前,我就有了这个想法。因为它乘以了
10
,所以它实际上不是
DateTime.now()
,尽管只有一个非常小的错误。例如,如果只存在
daysSinceEpoch
,那么
(daysSinceEpoch*24*3600*1000)*10+个epochTicks
将是一天开始的刻度,而不是现在。然而,这可能是使用核心库以最少的错误获得它的唯一方法。