求一思路

zj84604741 2012-06-19 11:42:22
java从oracle中获取时间类型数据,通过ResultSet 对象的getDate方法 可以获取到java.sql.Date对象 sql.Data对象只有年月日,但是我需要 小时、分钟 显示在页面上, 现在我唯一能做到的就是 通过ResultSet对象的getString方法获取 数据库中的时间,再转换为java.util.Date对象 请问一下各位大牛,还有更好的实现方法么?

这时我又遇到了问题,在插入数据库时,页面获取的时间类型为String 并且带小时和分钟, 通过查找jdk 没找到一个能把String类型(带小时、分钟)的时间变量 转换为sql.Data对象的, 因为是通过实体类传递参数,需要把时间的字符串转为sql.Date,这时我就无法插入数据库, 求实现方法(除了通过oracle中to_date函数,把字符串转换为时间格式)。
...全文
272 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiejin90314 2012-06-21
  • 打赏
  • 举报
回复
oracle自带把字符串转化成日期的东西。to_date(Str,'yyyymmddhhmmss')
蘑菇頭 2012-06-21
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

jdk帮助文档:
java.sql
类 Date
java.lang.Object
java.util.Date
java.sql.Date
所有已实现的接口:
Serializable, Cloneable, Comparable<Date>
public class Date extends Date
一个包装了毫秒值的瘦包装器 (thin wrapp……
[/Quote]

是的,多翻翻 API 就知道了……
  • 打赏
  • 举报
回复
用timestamp
qybao 2012-06-20
  • 打赏
  • 举报
回复
sql.Date也有时间的,你的显示没处理好吧

如果不想用oracle的to_date函数,可以自己生成sql.Date对象
String s = "2012-06-21 00:10:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date d1 = sdf.parse(s); //先把字符串转为util.Date对象
java.net.sql.Date d2 = new java.net.sql.Date(d1.getTime()); //再转换为sql.Date对象
MiceRice 2012-06-20
  • 打赏
  • 举报
回复
你要的是两类需求:
1、将Date对象按照 yyyy/MM/dd HH:mm:ss 进行输出;
2、将一个符合上述规范的String转为Date对象。

这两个需求,都可以通过一个类来完成,就是:SimpleDateFormat

SimpleDateFormat formater = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String text = formater.format(new Date());
Date dd = formater.parse("2000/01/01 12:00:00");
new_bird_0001 2012-06-20
  • 打赏
  • 举报
回复
jdk帮助文档:
java.sql
类 Date
java.lang.Object
java.util.Date
java.sql.Date
所有已实现的接口:
Serializable, Cloneable, Comparable<Date>
public class Date extends Date
一个包装了毫秒值的瘦包装器 (thin wrapper),它允许 JDBC 将毫秒值标识为 SQL DATE 值。毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以来经过的毫秒数。

为了与 SQL DATE 的定义一致,由 java.sql.Date 实例包装的毫秒值必须通过将小时、分钟、秒和毫秒设置为与该实例相关的特定时区中的零来“规范化”。


--------------------------------------------------------------------------------
构造方法摘要
Date(int year, int month, int day)
已过时。 使用构造方法 Date(long date) 替代
Date(long date)
使用给定毫秒时间值构造一个 Date 对象。
方法摘要
setTime(long date)
使用给定毫秒时间值设置现有 Date 对象。
从类 java.util.Date 继承的方法
after, before, clone, compareTo, equals, getDate, getDay, getMonth, getTime, getTimezoneOffset, getYear, hashCode, parse, setDate, setMonth, setYear, toGMTString, toLocaleString, UTC
看看帮助,通过java+Date关键字搜索java日期类的用法,外加实践,就能得到答案
夏天-滴風 2012-06-20
  • 打赏
  • 举报
回复
表定义的时候 定义成String不行吗 不使用Date
qybao 2012-06-20
  • 打赏
  • 举报
回复
那你的sql是怎么取的数据?是不是把后面的时分秒都trunc掉了
  • 打赏
  • 举报
回复
zj84604741 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

你用getDate没有获得sql.Date没有小时或分钟,那可能是数据库的数据本来就没有这些信息吧
[/Quote]
数据库中 中的数据是有 年月日,小时分钟秒的 时间类型数据。 但是获取的时候 java.sql.date中 没有 小时,分钟啊。 不仅输出了,而且debug观察下 小时,分钟 都为0
悠忧虫 2012-06-20
  • 打赏
  • 举报
回复
1.从数据库里面查询的时候,使用ResultSet的getTimestamp方法

2.插入数据的时候使用java.util.Date。(应该可以,没试过)
qybao 2012-06-20
  • 打赏
  • 举报
回复
你用getDate没有获得sql.Date没有小时或分钟,那可能是数据库的数据本来就没有这些信息吧
qybao 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
引用 2 楼 的回复:

sql.Date也有时间的,你的显示没处理好吧




sql.data 有小时、分钟? resultset对象的getDate方法 获得的sql.date 没有小时,分钟啊?求解答
[/Quote]
sql.Date是util.Date的子类,怎么会没有时间?

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.sql.Date d = new java.sql.Date(new java.util.Date().getTime());
System.out.println(sdf.format(d)); //d是sql.Date对象,可以打印出时间


另,LZ所谓的sql.data是指java.sql.Date吧?


zj84604741 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

sql.Date也有时间的,你的显示没处理好吧


[/Quote]

sql.data 有小时、分钟? resultset对象的getDate方法 获得的sql.date 没有小时,分钟啊?求解答
zj84604741 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你要的是两类需求:
1、将Date对象按照 yyyy/MM/dd HH:mm:ss 进行输出;
2、将一个符合上述规范的String转为Date对象。

这两个需求,都可以通过一个类来完成,就是:SimpleDateFormat

SimpleDateFormat formater = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Str……
[/Quote]

问一下 把带小时,分钟的字符串能通过simpledateformat转换为sql.date么?

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧