1
问题在标题中。我正在开发一个java程序,它将把整个cookie的文件变成chrome,并将其转化为文本。但是,我需要时间戳记是人类可以识别的东西。java中的Webkit/chrome时间戳到人类可读时间
什么是将webkit时间转换为人类可读时间的算法,或者是一个可以实现它的java程序的例子?
问题在标题中。我正在开发一个java程序,它将把整个cookie的文件变成chrome,并将其转化为文本。但是,我需要时间戳记是人类可以识别的东西。java中的Webkit/chrome时间戳到人类可读时间
什么是将webkit时间转换为人类可读时间的算法,或者是一个可以实现它的java程序的例子?
在Web浏览器(如WebKik和Chrome)中使用的时间戳格式自从1601年1月1日00:00 UTC以来是64位值,以微秒为单位。
该算法隐蔽WebKit的/铬时间将是:
下面是一个例子:
public LocalDateTime localDateTimeFromWebKitTimestamp(long webKitTimestamp) {
long epochStart = LocalDateTime
.from(LocalDateTime.of(1601, Month.JANUARY, 1, 0, 0))
.until(LocalDateTime.of(1970, Month.JANUARY, 1, 0, 0), ChronoUnit.MICROS);
long delta = webKitTimestamp - epochStart;
return LocalDateTime.ofInstant(
Instant.ofEpochMilli(TimeUnit.MICROSECONDS.toMillis(delta)), ZoneId.systemDefault());
}
好的解释,但这并不是100%的工作,只是因为长期看起来不能持有17位长的价值。我会尽量使用BigIntegers – Xenorosth
,'long'可以保持最大值2^63 - 1 = 9,223,372,036,854,775,807,这是19位数字。如果你喜欢'BigInteger',那也没问题。 – Wilson
我不得不在这里错过一些东西。这不起作用,但显然你输入的任何“字面”都不会很长,直到你在它后面键入一个L。谁知道。 – Xenorosth