用JAVA操作数据库Datetime数据 - 阿影的黄金时代 - 优快云Blog

本文介绍如何使用Java的Calendar类格式化时间,以及如何在数据库中插入和获取日期时间。包括使用PreparedStatement设置不同日期时间类型的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导读:
  在JDK 1.1后,java.util.Date 类型的大多数方法已经不推荐使用了。代替它的是Calendar。
  而在java.sql.Date 和 java.util.Date之间,有些微妙的关系。
  如何将Date类型插入数据库中,成为好多人的一个不小的障碍。
  当然,并不一定要在外部插入时间,因为在数据库中,可以让它自动插入,比如:MSSQL里面,用getdate()来插入当前时间,而在Insert时,便可以不用管它了。但有的时候还是避免不了,要手工插入时间,以更新数据库。
  1、java.util.Calendar 格式化时间
  Calendarcal = newGregorianCalendar();
  intyear = cal.get(Calendar.YEAR);
  intmonth = cal.get(Calendar.MONTH)+1;
  intday = cal.get(Calendar.DAY_OF_MONTH);
  intdayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
  Stringweek = "";
  switch(dayOfWeek) {
  case1:
  week = "星期天"break
  case2:
  week = "星期一"break
  case3:
  week = "星期二"break
  case4:
  week = "星期三"break
  case5:
  week = "星期四"break
  case6:
  week = "星期五"break
  default:
  week = "星期六"break
  inthour = cal.get(Calendar.HOUR_OF_DAY); // 24小时制
  // int hour = cal.get(Calendar.HOUR); // 12小时制
  intminute = cal.get(Calendar.MINUTE);
  intsecond = cal.get(Calendar.SECOND);
  Stringh,m,s;
  if(hour<10) h = "0"+hour; elseh = hour+""
  if(minute<10) m = "0"+minute; elsem = minute+""
  if(second<10) s = "0"+second; elses = second+""
  在JSP中输出是:
  今天是: <%=year%>年<%=month%>月<%=day%>日<%=week%> <%=h%>:<%=m%>:<%=s%>
  结果:今天是: 2006年4月14日星期五 05:35:26
  2、在数据库中插入时间
  PreparedStatement ps = con.prepareStatement("insert into TableName(dAddTime) values(?)");
  这里有三种方式:
  1) ps.setDate(1,new java.sql.Date(System.currentTimemillis()));
  2) ps.setTime(2,new java.sql.Time(System.currentTimemillis()));
  3) ps.setTimestamp(3,new java.sql.Timestamp(System.currentTimemillis()));
  第一种只插入年月日 0000-00-00
  第二种只插入时间 00:00:00
  第三种则插入完整的时间 0000-00-00 00:00:00.000 .000是毫秒数。
  3、取出数据库时间
  通常只有两种:
  1) getDate(String colname);// 取出日期 格式:0000-00-00
  2) getTimestamp(String colname);// 取出日期和时间 格式:0000-00-00 00:00:00.000
  3) getTime(String colname);// 只取出时间部份 格式:00:00:00 几乎不用,因为没有人只会取出时间,而不用日期。
  PS:转载请说明出处及作者。
  Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=662729

本文转自
http://blog.youkuaiyun.com/fcrpg2005/archive/2006/04/14/662729.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值