时间数据转换问题

时间数据转换问题

老师,在servlet中获取数据库中dateTime类型的数据,我们是不是一般用getString() (通常情况是这样获取吗?我实验过是可以获取的)。

还有当存入数据时,用preparedStatement设置数据库dateTime类型数据的参数时,一般是如何设置的。(我自己是用timestamp.valueOf(String 引用)  ,不过这样存到数据库后,再获取出来,时间最后会加上  .0  ,这是怎么回事?)

求解,感谢~

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,

1、timestamp.valueOf时间最后会加上 .0是无法改善的么

同学的这个方法表示将字符串格式转换Timestamp格式。数据库中时间字段是 datatime类型,使用java读取该字段时对应的类型为timestamp类型日期,就会出现该问题。

可以按照如下方式解决:

先用SimpleDateFormat sbf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 进行格式转换时间,

然后用Date d = sbf.parse(request.getParameter("birthday")); 即将字符串转换成java.util.Date类型

最后使用setTimestamp(4, new java.sql.Timestamp(d.getTime()));这样日期和时间都可以一起存入数据库,也就避免了.0的问题。

2、所以我们一般跟数据库交互时实体类用的是Date类型数据是么?

Date的数据类型使用的会比较多一点,但也要根据具体的需求而定。

3、Date类型能够获取和添加 ‘年月日时分秒’ 的数据是吗?

Date类型的只可以获取和添加年月日,而无法获取具体时间,同学可以使用getTimestamp();来获取所有的年月日时分秒的时间。通过上述第一点的setTimestamp()设置时间参数。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • qq_粽翎_0 提问者 #1
    感谢酷酷!
    2019-12-27 13:02:52
好帮手慕酷酷 2019-12-27 10:46:06

同学你好,

1、按照同学的方式也是可以的,但一般在servlet中获取数据库中dateTime类型的数据,如果实体类的时间属性为Date类型,建议可以使用的是getDate()的方法。

2、当存入数据时,用preparedStatement设置数据库dateTime类型数据的参数时,如果实体类的时间属性为Date类型,一般是使用setDate()的方法。

3、使用timestamp.valueOf时间最后会加上  .0 的原因是,数据库中时间字段是 datatime类型,使用java读取该字段时对应的类型为timestamp类型日期,就会出现该问题。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 qq_粽翎_0 #1
    timestamp.valueOf时间最后会加上 .0是无法改善的么, 所以我们一般跟数据库交互时实体类用的是Date类型数据是么?Date类型能够获取和添加 ‘年月日时分秒’ 的数据是吗
    2019-12-27 11:00:04
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师