通过Java日期时间API系列1-----Jdk7及以前的日期时间类中得知,Java8以前除了java.sql.Timestamp扩充纳秒,其他类最大只精确到毫秒;Java8 time包所有相关类都支持纳秒。下面是示意图:
图中的nano 是 一秒钟包含的纳秒值,0到999999999。毫秒,微秒和纳秒都是通过这个值计算得到的。
1.Timestamp格式化中的纳秒。
java.sql.Timestamp.toString()方法中的格式为:
格式化模板是:yyyy-mm-dd hh:mm:ss.fffffffff,这里的 fffffffff 指的是纳秒,但会将最后的0省略掉。比如:
2020-05-23 17:06:30.0
2020-05-23 17:06:30.272
2020-05-23 17:06:30.27215
2020-05-23 17:06:30.27215062
2.Timestamp格式解析
.
/*** 解析Timestamp格式字符串为LocalDateTime 默认格式 yyyy-mm-dd hh:mm:ss.fffffffff 其中 fffffffff 纳秒,省略后面的0 比如:
*
* 2020-05-23 17:06:30.0
* 2020-05-23 17:06:30.272
* 2020-05-23 17:06:30.27215
* 2020-05-23 17:06:30.27215062
*
*@paramtext
*@returnLocalDateTime*/
public staticLocalDateTime parseTimestampStyleToLocalDateTime(String text){//预处理
Objects.requireNonNull(text, "text");
text=text.trim();if(!text.contains(".")){throw new DateTimeException("text is not supported! " +text);
}//.分割成2部分,分