Webkit / chrome时间戳到java中的Human-Readable时间

时间:2016-07-07 13:47:41

标签: java google-chrome

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

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

1 个答案:

答案 0 :(得分:1)

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

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

  1. 计算WebKit / Chrome时间戳与1970年1月1日00:00 UTC和1月1日1601 00:00 UTC之间的微秒数之间的微秒数
  2. 将微秒转换为日期时间
  3. 以下是一个例子:

    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());
    }