java 微秒_现在有任何新的方法可以在Java中以微秒的...

TL;博士

Instant.now()

2018-03-09T21:03:33.831515Z

使用Java 9及更高版本,您可以使用microseconds分辨率捕获当前时刻.

上面的示例是针对macOS Sierra的Oracle Java 9.0.4.请注意小数秒的6位数,即微秒.

java.time

Java 8及更高版本中内置的java.time框架具有表示日期时间值的类,分辨率为nanoseconds,9位数小数秒.

Java 9

Java 9有一个fresh implementation的Clock,分辨率高达纳秒级.实际值取决于任何特定计算机的基础硬件时钟的限制.

避免使用较旧的日期时间类.与早期版本的Java捆绑在一起的java.util.Date/.Calendar等类只有毫秒级的分辨率.对于Joda-Time也是如此.两者都被java.time类取代.

Java 8

Java 8实现Clock接口,分辨率仅为millisecond(小数秒的3位数).因此,虽然java.time类能够承载纳秒,但它无法以纳秒捕获当前时间.

本机代码

也许您可以编写或查找Clock的实现,该实现调用主机操作系统中的本机库以获得更准确的时间.

数据库

如果您恰好正在使用数据库,您可以随时询问它.从JDBC 4.2及更高版本开始,您可以直接与数据库交换java.time对象.

Instant instant = myPreparedStatement.getObject( … , Instant.class ) ;

在JDBC 4.2之前,您可以查看带有纳秒分辨率的麻烦的旧java.sql.Timestamp.例如,Postgres提供microsecond分辨率(假设主计算机时钟支持该分辨率),小数秒的6位数.您可以使用添加到旧类的新方法将java.sql.Timestamp转换为Instant和ZonedDateTime.

9eaXs.png

关于java.time

要了解更多信息,请参阅Oracle Tutorial.并搜索Stack Overflow以获取许多示例和说明.规格是JSR 310.

您可以直接与数据库交换java.time对象.使用符合JDBC 4.2或更高版本的JDBC driver.不需要字符串,不需要java.sql.*类.

从哪里获取java.time类?

>内置.

>部分标准Java API,带有捆绑实现.

> Java 9增加了一些小功能和修复.

>大部分java.time功能都被反向移植到Java 6& 07年7月7日.

>更新版本的Android捆绑java.time类的实现.

>对于早期的Android(< 26),ThreeTenABP项目采用ThreeTen-Backport(如上所述).见How to use ThreeTenABP….

ThreeTen-Extra项目使用其他类扩展了java.time.该项目是未来可能添加到java.time的试验场.您可以在这里找到一些有用的类,例如Interval,YearWeek,YearQuarter和more.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值