当前位置: 首页 > 知识库问答 >
问题:

如何在Java8中将微秒转换为LocalDateTime

申屠昌胤
2023-03-14
Instant instant =
                    Instant.ofEpochSecond(
                            TimeUnit.NANOSECONDS.toSeconds(timestamp),
                            (timestamp % 1_000_000_000L));
            return LocalDateTime.ofInstant(instant, ZoneId.systemDefault());

谢谢

共有1个答案

双志强
2023-03-14

您可以使用instant.ofepochmilli从时间戳中以毫秒获得时间,然后使用instant#plusnanos添加微秒。

它看起来应该是这样的:

Instant instant = Instant.ofEpochMillis(timestamp/1_000).plusNanos(timestamp%1_000);
return LocalDateTime.ofInstant(instant, ZoneId.systemDefault());

timestamp/1_000获取以毫秒为单位的时间,以截断微秒为单位,plusnanos(timestamp%1_000)添加微秒部分并返回新的instant

 类似资料:
  • 我可以像这样将19位unix时间戳转换为LocalDateTime

  • Windows函数给出给定线程使用的“CPU时钟周期”数。Windows手册中大胆地指出 不要尝试将QueryThreadCycleTime返回的CPU时钟周期转换为经过的时间。 对于大多数英特尔和AMDx86_64CPU,我想这样做。它不需要非常精确,因为无论如何你都不能期望像RDTSC这样的循环计数器完美。我只需要一些笨拙的方法来获取CPU的时间因子。 首先,我设想在内部使用RDTSC。我设想

  • 我从GPS接收机接收到一个时间戳,它以秒后的微秒时间表示:

  • 但这一个返回的是基于本地时间的毫秒。也不考虑ZoneID。 假设。如果我将其转换为具有区域id(“Asia/Kolkata”)的,那么我将得到()。然后以UTC转换为EpochMilli(1554854400000)=()。

  • 问题内容: 为这个简单的问题表示歉意…我是Python的新手…我四处搜寻,似乎没有任何反应。 我有一堆datetime对象,我想计算每个对象过去某个固定时间以来的秒数(例如,自1970年1月1日起)。 这似乎只能区分具有不同日期的日期: 任何帮助深表感谢。 问题答案: 在1970年1月1日这个特殊日期,有多种选择。 对于任何其他开始日期,您需要以秒为单位获取两个日期之间的差额。将两个日期相减得到一

  • 我将calendar.getTimeinMilliseconds()中的日期存储在SQLite DB中。我需要在SELECT语句中标记每个月的第一行,所以我只需要使用SQLite函数将时间以毫秒为单位转换为任何日期格式。我怎样才能避免这个?