java - Java 中的 Webkit/chrome 时间戳到人类可读时间

标签 java google-chrome

问题在标题中。我正在编写一个java程序,它将在chrome中转换整个cookie文件,并将其转换为文本。但是,我需要时间戳是人类可以识别的。

将 webkit 时间转换为人类可读时间的算法是什么,或者可以执行此操作的 java 程序示例是什么?

最佳答案

Web 浏览器(例如 WebKik 和 Chrome)中使用的时间戳格式是自 1601 年 1 月 1 日 00:00 UTC 以来的微秒 64 位值。

隐藏 WebKit/Chrome 时间的算法是:

  1. 计算 WebKit/Chrome 时间戳之间的微秒数以及 1970 年 1 月 1 日 00:00 UTC 与 1601 年 1 月 1 日 00:00 UTC 之间的微秒数差异
  2. 将微秒转换为日期时间

下面是一个例子:

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/

相关文章:

angular - Web OTP API Typescript Typings 问题 - TypeScript 中缺少类型

java - 如何在android代码中创建MongoID?

java - Maven/Java,IllegalStateException指的是什么?

java - 在开始路由之前交叉检查camel ftp/sftp身份验证

Linux 上的 JAVA 堆大小监控

Firefox 中缺少 CSS,但 Chrome 中没有

java - 用Java实现决策树数据库

google-chrome - 如何在适用于 Linux (Debian 10) 的 Windows 子系统上开发 Flutter Web 应用程序

android - PWA Android/chrome 启动画面上显示的错误图标

php - 为什么我无法使用谷歌浏览器登录到 magento 后端