问题背景:

根据时间字段拉取数据,由于平时测试环境时间字段都是DATE类型精度为0,用

SimpleDateFormat格式化为yyyy-MM-dd hh:mm:ss然后拼接sql查询没有问题;但是前几天别人提供的数据为timestamp精度设置为6时间如:2022-01-21 11:07:18.123456,采用上面这种格式化日期后丢失精度导致数据缺失。

面向百度编程。。。

结果大家都说后面秒要几位小数就写几个S 于是乎我改成了yyyy-MM-dd hh:mm:ss.SSSSSS

结果格式化出来的时间成了2022-01-21 11:07:18.000123

这也不行啊!!!

又经过一番百度,有个人说的好像靠谱点:

不,您不能使用SimpleDateFormat来处理纳秒。 但是你的前提是…… Java does not support time granularity above milliseconds in its date patterns Ok. …从Java 8、9、10及更高版本开始,内置Java.time类不再适用。 Java 6和Java 7也并非如此,因为大多数java.time功能都是反向移植的。 java.time SimpleDateFormat和相关的java.util.Date / .Calendar类现在已被Java 8(教程)中新的java.time包取代。 新的java.time类支持纳秒分辨率。该支持包括解析并生成9位数的小数秒。例如,当您使用java.time.format DateTimeFormatter API时,S模式字母表示"秒的分数"而不是"毫秒",它可以处理纳秒的值。

此处奉上DateTimeFormatter用法:

//字符串转换为日期
String dateStr= "2018年12月18日";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
LocalDate date= LocalDate.parse(dateStr, formatter);//日期转换为字符串
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
String nowStr = now.format(format);Instant:瞬时实例。
LocalDate:本地日期,不包含具体时间。
LocalTime:本地时间,不包含日期。
LocalDateTime:组合了日期和时间,但不包含时差和时区信息。
ZonedDateTime:最完整的日期时间,包含时区和相对UTC或格林威治的时差。//Date转LocalDateTime
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
Date date = instant.atZone(zoneId).toLocalDateTime();//LocalDateTime转Date
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zdt = localDateTime.atZone(zoneId);
LocalDateTime localDateTime = Date.from(zdt.toInstant());

直接起飞!!!!!

关于SimpleDateFormat格式化无法精确到微妙、纳秒的处理相关推荐

  1. java 纳秒 格式化_Java日期时间API系列35-----Jdk8中java.time包中的新的日期时间API类应用,微秒和纳秒等更精确的时间格式化和解析。...

    通过Java日期时间API系列1-----Jdk7及以前的日期时间类中得知,Java8以前除了java.sql.Timestamp扩充纳秒,其他类最大只精确到毫秒:Java8 time包所有相关类都支 ...

  2. java 精确到微妙_如何在Java中以微秒精度测量时间?

    我在Internet上看到应该使用System.nanoTime(),但这对我不起作用-它为我提供了毫秒级的时间.我只需要函数执行前后的微秒,就可以知道需要多长时间.我正在使用Windows XP. ...

  3. java格式化时间到微秒_Java日期解析具有微秒或纳秒精度

    TL;博士 LocalDateTime.parse( // With resolution of nanoseconds, represent the idea of a date and time ...

  4. SimpleDateFormat 带纳秒时间的处理

    在JDK 1.8以下版本,对于带纳秒的时间串使用SimpleDateFormat 类进行格式化: 2018-05-18T20:20:53.420658997+08:00 SimpleDateForma ...

  5. java 时间格式化_还在用SimpleDateFormat格式化时间?小心经理锤你

    还在用SimpleDateFormat格式化时间?小心经理锤你 场景 本来开开心心的周末时光,线上突然就疯狂报错,以为程序炸了,截停日志,发现是就是类似下述一段错误 java.lang.NumberF ...

  6. java 纳秒_如何在Java 8中使用Date API达到精确的纳秒精...

    我们正在尝试获取具有9个精度值的精确nanoSeconds以捕获时间. 使用Java 8,我们可以实现如下所述. @Test public void testNanoClock() throws In ...

  7. linux内核纳秒精度时间,Linux时钟精度:毫秒?微妙?纳秒?

    最近被内核时钟精度弄的很是郁闷.具体情况如下: 扫盲:1秒=1000毫秒=1000000微妙=1000000000纳秒 首先:linux有一个很重要的概念--节拍,它的单位是(次/秒).2.6内核这个 ...

  8. 利用STM32CubeMX来设置精确到微妙(us)的定时器

    在测试程序的时候,我们通常要进行程序的运行时间测定以及判断程序运行的先后时间,对于大多数运行的程序来说,us(微秒)级别的时钟是足够了的. 所以,这里利用STM32CubeMX来设置精确到微妙(us) ...

  9. java 格式化日期到毫秒_关于日期:Java – SimpleDateFormat格式化程序,以毫秒为单位返回纪元时间...

    本问题已经有最佳答案,请猛点这里访问. 我是Java和编码的新手 - 我有一些代码以下列格式yyyy.MM.dd HH:mm:ss:ms返回时间戳,如下所示: SimpleDateFormat for ...

最新文章

  1. 安装Matlab出现Error 1935错误解决方法
  2. D进制的A+B (20)
  3. c++ skia 判断jpg图片是完整的_python处理图片入门级
  4. android studio设计模式和文本模式切换
  5. 有意思的逻辑思维题(二)(hdu1052)
  6. python串口模块_Python使用pip安装pySerial串口通讯模块
  7. tableview 添加手势_【iOS12+Swift5】如何在tableViewController里面给Cell添加手势
  8. 2018-04-22jenkins+maven+svn环境搭建学习心得
  9. 【渝粤教育】国家开放大学2018年春季 0266-22T设计构成 参考试题
  10. 极客大学产品经理训练营 产品思维和产品意识(中) 第4课总结
  11. 华为荣耀立方中播放群晖nas中保存的视频
  12. list tuple dirt set 的简单区分方法
  13. 芥末圈:“知识付费”面具下的币圈割韭菜大本营
  14. 火焰纹章核心功能的实现
  15. “相信美好,即将发生”——天泽智云
  16. C++修改密码恶搞软件通过代码修改电脑密码
  17. python模块之 paramiko
  18. ddd+kgdb调试内核
  19. Mysql 增量备份和全量备份
  20. 零知识证明经典文献大汇总(可收藏)

热门文章

  1. Solidity实现拍卖竞价,代码解析,著名代码文档出处
  2. 顶会速递 | ICLR 2020录用论文之元学习篇
  3. Oracle EBS 导入日记账提示警告 GL_INTERFACE 错误代码ECW1,EC11
  4. 15分钟带你了解lower_bound和upper_bound
  5. IT嘚吧嘚 盘点2015企业与互联网+的私语
  6. 理解 Audio 音频系统二 之 audioserver AudioPolicyService
  7. 怎么打开计算机的音乐模式,xp开机音乐怎么设置 如何设置开机音乐
  8. alpine linux apk删除,把玩Alpine linux(二):APK包管理器
  9. 【愚公系列】2022年03月 .NET架构班 021-ABP vNext 动态代理模块
  10. 金牌网管师系列教材北京发布会我的演讲稿