本站首页    管理页面    写新日志    退出


«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告

戒除浮躁,读好书,交益友


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:邢红瑞的blog
日志总数:523
评论数量:1142
留言数量:0
访问次数:9711703
建立时间:2004年12月20日




[java语言]java语言对时间的处理
原创空间,  软件技术

邢红瑞 发表于 2005/12/17 10:54:40

1.处理数据库,有DATE Java.sql.Date 日期,TIME Java.sql.Time 时戳,TIMESTAMP Java.sql.Timestamp 当日日期和时间,对应的ResultSet的方法DATE                          java.sql.Date                               java.sql.Date getDate()TIME                           java.sql.Time                               java.sql.Time getTime()TIMESTAMP              java.sql.Timestamp                   java.sql.Timestamp getTimestamp()根据java2的规范要求使用Java.sql.Timestamp,这样不会失去精度详见(http://blogger.org.cn/blog/more.asp?name=hongrui&id=7557)。对于oracle数据库比较例外,可以用oracle.sql.TIMESTAMP这和他的版本也有关系。注意,SQLserver中timestamp 对应的是 DateTime类型。使用spring的jdbc时,尽可能用Java.sql.Timestamp详见(http://blogger.org.cn/blog/more.asp?name=hongrui&id=9521)。下面给个例子public static java.sql.Timestamp getDBSysdate(Connection conn)throws Exception {Statement stmt = null;ResultSet rs = null;Timestamp sysTime = null; try {stmt = conn.createStatement();rs = stmt.executeQuery("SELECT SYSDATE FROM DUAL");if (rs.next()) {sysTime = rs.getTimestamp("SYSDATE");}} catch (Exception e) { } finally {try {if (rs != null) {rs.close();}if (stmt != null) {stmt.close();}} catch (Exception e) { }} return sysTime;}最好的办法使用long存时间,使用Calendar 处理,就是表示日期时间不直观。2.字符串转化时间,注意不能判断时间输入是否正确,判断时间输入是否正确,请使用正则。try     {       String st="2005-13-32 12:00";     java.text.DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");              Date  starttime = df.parse(st);     System.out.println(starttime.toString());             } catch(Exception ex){ }不要搞混了try-catch的功能。只有程序或系统抛出了异常,try-catch才能捕获 ,得到Wed Feb 01 00:00:00 CST 2006这样操作是错误的,Timestamp是java.util.Date,会得到java.lang.ClassCastException,你犯了向下转型的错误。 try     {       String st="2005-13-32 12:00";     java.text.DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");              Timestamp  starttime =(Timestamp) df.parse(st);     System.out.println(starttime.toString());             } catch(Exception ex){ ex.printStackTrace();}应该使用try {   String st = "2005-12-2 12:00:00";   Timestamp starttime = Timestamp.valueOf(st);   System.out.println(starttime.toString());  } catch (Exception ex) {   ex.printStackTrace();  }  或  import java.sql.*;import java.util.*; public class CreateTimestamp {   public static void main(String [] args) {    Calendar cal = Calendar.getInstance();    cal.set(Calendar.YEAR, 2000);   cal.set(Calendar.MONTH, Calendar.JANUARY);   cal.set(Calendar.DATE, 1);   cal.set(Calendar.HOUR_OF_DAY, 11);   cal.set(Calendar.MINUTE, 45);   cal.set(Calendar.SECOND, 30);   cal.set(Calendar.MILLISECOND, 0);    long millis = cal.getTime().getTime();   System.out.println("milliseconds in millis = " + millis);   java.sql.Timestamp ts = new java.sql.Timestamp(millis);   System.out.println("Timestamp ts before setting nanos = " + ts);    ts.setNanos(500);   System.out.println("Timestamp ts with nanos set = " + ts);   }} 下面给出javadoc的方法1. java.sql.Date.valueOf(java.lang.String)     public static Date valueOf(String s) Converts a string in JDBC date escape format to a Date value.  Parameters: s - a String object representing a date in in the format "yyyy-mm-dd"  Returns: a java.sql.Date object representing the given date  Throws:  IllegalArgumentException - if the date given is not in the JDBC date escape format (yyyy-mm-dd) 2. java.sql.Time.valueOf(java.lang.String)     public static Time valueOf(String s) Converts a string in JDBC time escape format to a Time value.  Parameters: s - time in format "hh:mm:ss"  Returns: a corresponding Time object 3. java.sql.Timestamp.valueOf(java.lang.String)       public static Timestamp valueOf(String s) Converts a String object in JDBC timestamp escape format to a Timestamp value.  Parameters: s - timestamp in format yyyy-mm-dd hh:mm:ss.fffffffff  Returns: corresponding Timestamp value  Throws:  IllegalArgumentException - if the given argument does not have the format yyyy-mm-dd hh:mm:ss.fffffffff


阅读全文(6411) | 回复(1) | 编辑 | 精华
 


回复:java语言对时间的处理
原创空间,  软件技术

magicgod(游客)发表评论于2005/12/22 12:44:48

我的blog地址换了:http://blog.matrix.org.cn/page/magicgod 更换一下链接


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144799583 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号