时间数据转换问题

来源:7-2 项目作业

qq_粽翎_0

2019-12-26 19:23:07

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

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

求解,感谢~

写回答

2回答

好帮手慕酷酷

2019-12-27

同学你好,

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()设置时间参数。

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

0
hq_粽翎_0
h 感谢酷酷!
h019-12-27
共1条回复

好帮手慕酷酷

2019-12-27

同学你好,

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

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

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

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

0
hq_粽翎_0
h timestamp.valueOf时间最后会加上 .0是无法改善的么, 所以我们一般跟数据库交互时实体类用的是Date类型数据是么?Date类型能够获取和添加 ‘年月日时分秒’ 的数据是吗
h019-12-27
共1条回复

0 学习 · 8016 问题

查看课程