这个时间格式是什么? (10 位数字,5 位小数)

What is this time format? (10 digits, 5 decimals)

所以我正在使用的网站有一个 websocket,它们按以下方式提供广播时间:

"broadcasted_at":1574325570.71308

这个时间格式是什么,它们是如何生成的?

Unix epoch time ... 自 Unix 纪元以来经过的秒数,即 1970 年 1 月 1 日 00:00:00 UTC 时间

now            :      1574327074 : Thu Nov 21 03:04:34 2019
start of day   :      1574316000 : Thu Nov 21 00:00:00 2019
1574325570     :      1574325570 : Thu Nov 21 02:39:30 2019

在线转换:https://www.epochconverter.com/

... 或下载代码(构建)让命令行程序执行转换 https://github.com/darrenjs/c_dev_utils

我猜小数部分是当前秒内的微秒数。

… and how do they generate it?

当然,我不知道您的网站使用的是什么语言或库。所以这只是一个例子。在 Java 中生成类似 1574325570.71308 的值:

    Instant now = Instant.now();
    double epochSeconds = now.getEpochSecond()
            + (double) now.getNano() / (double) TimeUnit.SECONDS.toNanos(1);
    String result = String.format(Locale.ROOT, "%f", epochSeconds);
    System.out.println("result: " + result);

当我 运行 刚才这个片段 (2019-12-15T11:18:01.562699Z) 时,输出是:

result: 1576408681.562699

如果你想要恰好 5 位小数,另一种方法是使用 DateTimeFormatter:

    DateTimeFormatter formatter = new DateTimeFormatterBuilder()
            .appendValue(ChronoField.INSTANT_SECONDS)
            .appendPattern(".SSSSS")
            .toFormatter();
    String result = formatter.format(now);

result: 1576408681.56269