java - 我们如何在java中转换格式时间戳
问题描述
我将 java 与 mysql 连接起来,从中获取 sql timestamp data = "2021-03-09 14:33:05.095".{TIMESTAMP(0)}
现在我需要将该值存储到 oracle 中。但在 oracle 中,时间戳格式如下:07-DEC-17 06.16.35.261000000 PM.{TIMESTAMP(6) }
我们如何转换时间戳格式?
解决方案
数据库中的日期时间数据类型没有“格式”,因为它们不是文本的。要在数据库和 Java 之间交换日期时间值,请使用日期时间对象。
将您的字符串输入解析为LocalDateTime
.
LocalDateTime ldt = LocalDateTime.parse( "2021-03-09 14:33:05.095".replace( " " , "T" ) ) ;
使用类似于 SQL 标准类型的数据类型的列存储在数据库中TIMESTAMP WITHOUT TIME ZONE
。
发送您的日期时间对象。
myPreparedStatement.setObject( … , ldt ) ;
恢复。
LocalDateTime ldt = myResultSet.getObject( … , LocalDateTime.class ) ;
其中一条评论建议使用java.sql.Timestamp
. 不要那样做。那个设计不佳的类已经过时,几年前被JSR 310 中定义的现代java.time类所取代。
所有这些都已经在 Stack Overflow 上多次介绍过。搜索以了解更多信息。
推荐阅读
- html - 如何在 perl 中对 HTML DOM 元素进行快照
- javascript - Angular patchvalue 返回 ERROR DOMException:尝试使用不可用或不再可用的对象
- read-the-docs - ReadTheDocs 搜索:'未能创建查询:路径 [sections] 下的 [nested] 嵌套对象不是嵌套类型'
- javascript - 如何在 reactjs 中添加下拉菜单?
- python - 'OrderItem' 对象没有属性 'Product'
- python - 无法在 mac 上安装 psycopg2
- vuetify.js - 当我单击任意位置时,Vuetify v-select 不会关闭
- ios - 重新生成临时配置文件、分发证书和 APNS 证书
- c# - 使用分页时所有文件夹的请求返回重复项
- tornado - 如何验证 GoogleOAuth2LoginHandler 类中的“hd”参数?