天天看点

java 获取13位时间戳_0625-ticks-18位时间戳转换

有一批全天的期货tick级数据,时间戳都是18位的,怎么就是不会转换。。。。

tick注解

一个计时周期表示一百纳秒,即一千万分之一秒。 1 毫秒内有 10,000 个计时周期,即 1 秒内有 1,000 万个计时周期。

此属性的值表示自0001年1月1日午夜 12:00:00 0:00:00 (公历日期为0001年1月1日,UTC 时间为公历)的100纳秒间隔数,表示 DateTime.MinValue。 它不包括由闰秒组成的计时周期数

java 获取13位时间戳_0625-ticks-18位时间戳转换
java 获取13位时间戳_0625-ticks-18位时间戳转换

计算公式:Ticks = (1970年01月01日00:00:00 ~ DateTime ) 的刻度值 + 621355968000000000,其中 621355968000000000 表示从 0000年00月00日00:00:00 ~ 1970年01月01日00:00:00的刻度值。

DateTime.Now.Ticks 是指从DateTime.MinValue之后过了多少时间,10000000为一秒,保存在long类型的变量里,可以将它传到datetime的构造函数内转成时间类型。

一个以0.1纳秒为单位的时间戳,

就是一个long型的数,

其实DateTime本质上就是一个long型的,通过0.1纳秒的单位,换算成各种时间,如果分,秒,年月日等等这些组合起来就是一个DateTime类型了

epoch =(DateTime.Now.ToUniversalTime()。Ticks-621355968000000000)/ 10000000

UTC即世界标准时间,中国大陆、中国香港、中国澳门、中国台湾、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚州的时间与UTC的时差均为+8,也就是UTC+8。

https://www.jianshu.com/p/a1be8251c17b​www.jianshu.com