当前位置: 技术问答>java相关
确实晕头了,需要高手提醒!分值1000
来源: 互联网 发布时间:2017-03-13
本文导语: 用JAVA,ORACLE,开发程序。 我需要从我做的页面JTextField中取得数据,年月日时分秒共六个单位 现在需要全程操作: 从jtextField 中取得数据,然后根据数据到数据库中找寻,然后经过一定的逻辑操作以后呢,从数据库...
用JAVA,ORACLE,开发程序。
我需要从我做的页面JTextField中取得数据,年月日时分秒共六个单位
现在需要全程操作:
从jtextField 中取得数据,然后根据数据到数据库中找寻,然后经过一定的逻辑操作以后呢,从数据库中查询出时间,显示到六个JTextField中。
刚开始的时候我用Date,然后用new Date(Data.parseDate());
或者是Date.toString(),Date.getYear() 之类的方法,
插入数据库的时候特麻烦,我把Date 硬转化成了oracle类型的String 插入了。
现在呢,经过我一番折腾,能插入,能查询,能打印,但是结果我发现大相径庭,从年到月到秒,都出点问题,
我觉得我的整个转换过程没有问题的,但是就是不知道哪个地方不对,感觉在几个数据中转圈圈,现在已经晕头转向了。
我恳请这里哪位高手能帮帮忙,帮我做个示范(从取得数据到做完一系列以后显示数据),我自己确实已经晕乎乎的了。
在线等待中,谢谢各位了,分不是问题的。
我需要从我做的页面JTextField中取得数据,年月日时分秒共六个单位
现在需要全程操作:
从jtextField 中取得数据,然后根据数据到数据库中找寻,然后经过一定的逻辑操作以后呢,从数据库中查询出时间,显示到六个JTextField中。
刚开始的时候我用Date,然后用new Date(Data.parseDate());
或者是Date.toString(),Date.getYear() 之类的方法,
插入数据库的时候特麻烦,我把Date 硬转化成了oracle类型的String 插入了。
现在呢,经过我一番折腾,能插入,能查询,能打印,但是结果我发现大相径庭,从年到月到秒,都出点问题,
我觉得我的整个转换过程没有问题的,但是就是不知道哪个地方不对,感觉在几个数据中转圈圈,现在已经晕头转向了。
我恳请这里哪位高手能帮帮忙,帮我做个示范(从取得数据到做完一系列以后显示数据),我自己确实已经晕乎乎的了。
在线等待中,谢谢各位了,分不是问题的。
|
既然是得到6个JTextField的string值,自然可以简单地组装成这种样式:
“yyyy-MM-dd kk:mm:ss”
如时间字符串为:String aDate = "2002-12-01 10:22:20";
java中对应数据库中的年月日时分秒的class是java.sql.Timestamp。
java.sql.Date不行,只有年月日,java.sql.Time也不行,只有时分秒,
而java.util.Date虽然是有年月日时分秒,但并非数据库支持的对象。
所以,得到时间string后,做个转换成java.sql.Timestamp对象即可,
调用函数如下:
/**
* 作者:alphazhao
* 日期:2002-5-27
* 描述:将一个类型为"yyyy-MM-dd kk:mm:ss"的字符串转换为一个系统日期
* 因转换日期为util.Date类型,无法插入数据库,需改为Timestamp类型
* 注意时间字符串格式
* */
public class StringToDate {
public final static java.sql.Timestamp string2Date(String dateString)
throws java.lang.Exception {
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型
return dateTime;
}
}
至于读取数据,就不用我详细说了吧?
另外,oracle用varchar对象来存放时间对象肯定是不行的,在实际项目中肯定会出大问题,比如客户按时间查询统计等……
“yyyy-MM-dd kk:mm:ss”
如时间字符串为:String aDate = "2002-12-01 10:22:20";
java中对应数据库中的年月日时分秒的class是java.sql.Timestamp。
java.sql.Date不行,只有年月日,java.sql.Time也不行,只有时分秒,
而java.util.Date虽然是有年月日时分秒,但并非数据库支持的对象。
所以,得到时间string后,做个转换成java.sql.Timestamp对象即可,
调用函数如下:
/**
* 作者:alphazhao
* 日期:2002-5-27
* 描述:将一个类型为"yyyy-MM-dd kk:mm:ss"的字符串转换为一个系统日期
* 因转换日期为util.Date类型,无法插入数据库,需改为Timestamp类型
* 注意时间字符串格式
* */
public class StringToDate {
public final static java.sql.Timestamp string2Date(String dateString)
throws java.lang.Exception {
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型
return dateTime;
}
}
至于读取数据,就不用我详细说了吧?
另外,oracle用varchar对象来存放时间对象肯定是不行的,在实际项目中肯定会出大问题,比如客户按时间查询统计等……
|
哈哈,不可能吧,其实很简单啊,日期格式在数据库中就要用日期格式存放。
假如你取得了六个数据
year
month
day
hour
min
sec
Date d=new Date()
d.setYear()
d.setMonth()......
之后插入到数据库中
驱除的时候用to_char(youtimefield,'yyyy-mm-dd hh:mm:ss')的形式就应该没有问题
至于Data.parseDate());我用过的,好象问题很大,无论如何就是无法转化
假如你取得了六个数据
year
month
day
hour
min
sec
Date d=new Date()
d.setYear()
d.setMonth()......
之后插入到数据库中
驱除的时候用to_char(youtimefield,'yyyy-mm-dd hh:mm:ss')的形式就应该没有问题
至于Data.parseDate());我用过的,好象问题很大,无论如何就是无法转化
|
oracle的to_char(日期,参数)也许能解决你的问题
'YYY'、'YY'、'Y', 得到年的最后三位,两位,一位
syear, year,得到当前年,公元前的年加上负号
q,当前季度
MM,当前月
RM,罗马数字表示月
Month,9个字符表示月
WW,当年的几周
W,本月第几周
DDD,当年第几天
DD,当月第几天
D,周内第几天
DY,周内第几天缩写
HH、HH12,12进制小时数
HH24,24小时制
MI,分钟数(0~59)
SS,秒数(0~59)
'YYY'、'YY'、'Y', 得到年的最后三位,两位,一位
syear, year,得到当前年,公元前的年加上负号
q,当前季度
MM,当前月
RM,罗马数字表示月
Month,9个字符表示月
WW,当年的几周
W,本月第几周
DDD,当年第几天
DD,当月第几天
D,周内第几天
DY,周内第几天缩写
HH、HH12,12进制小时数
HH24,24小时制
MI,分钟数(0~59)
SS,秒数(0~59)
|
使用oracle自带的内部函数:to_date(datetime,'yyyy/mm/dd hh:mm:ss')插入数据,
用to_char(datetime,'yyyy/mm/dd hh:mm:ss')取出数据。
用to_char(datetime,'yyyy/mm/dd hh:mm:ss')取出数据。
|
还没说完吧
|
把代码贴出来了
|
用GregorianCalendar来进行日期的管理,必使用date好,你不妨使用它来试试,或许能减少你的负担。
|
想清楚再写代码!别自己都糊涂了,更别说别人怎么去看你的代码了!!
|
你的数据库中为什么要用字符串存时间呢?你把全部同意成时间类型,完全就不需要这样转来转去.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。