问题在标题中。我正在编写一个java程序,它将在chrome中转换整个cookie文件,并将其转换为文本。但是,我需要时间戳是人类可以识别的。
将 webkit 时间转换为人类可读时间的算法是什么,或者可以执行此操作的 java 程序示例是什么?
最佳答案
Web 浏览器(例如 WebKik 和 Chrome)中使用的时间戳格式是自 1601 年 1 月 1 日 00:00 UTC 以来的微秒 64 位值。
隐藏 WebKit/Chrome 时间的算法是:
- 计算 WebKit/Chrome 时间戳之间的微秒数以及 1970 年 1 月 1 日 00:00 UTC 与 1601 年 1 月 1 日 00:00 UTC 之间的微秒数差异
- 将微秒转换为日期时间
下面是一个例子:
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());
}
关于java - Java 中的 Webkit/chrome 时间戳到人类可读时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38247198/