区块时间获取

无论BTC系列的区块还是ETH系列的区块,区块创建的时间存储单位都是unix时间戳。单位是秒而不是毫秒,这是我们在使用时必须注意的,如果直接用它来创建时间是肯定是错误的。

Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。

Java语言中的转换

在Java中可以通过new Date().getTime()或System.currentTimeMillis()来获取时间戳。

但通过上面方法获取到的时间单位是毫秒。因此需要进行相应的转换。比如:System.currentTimeMillis() /1000。通过上面的方法就可以获得相应以秒为单位的时间戳。

同时可以通过new java.util.Date(Unix timestamp * 1000)方法来获得对应Java中的Date日期。

举例

例如ETH当中文档中对block的创建时间戳描述为:

timestamp: Number – the unix timestamp for when the block was collated.

我们可以通过以下命令获取到对应的timestamp字段内容:

web3.eth.getTransaction(“0x5da2844afb6826d4baed6ad7e8b536c00cbc921ac147773ad056f29f2e7c1762”).blockNumber
1920050
web3.eth.getBlock(1920050).timestamp
1469021581



区块链Block创建时间插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:https://choupangxia.com/2019/07/06/%e5%8c%ba%e5%9d%97%e9%93%beblock%e5%88%9b%e5%bb%ba%e6%97%b6%e9%97%b4/