Java.util.Date类型的转化成为数据库中的Date类型。

最完整的一个网页:http://www.zxbc.cn/html/20080905/65272.html

 

作者:天涯 来源:中国自学编程网 发布日期:1220576012

在JDK 1.1后,java.util.Date 类型的大多数方法已经不推荐使用了。代替它的是Calendar。

而在java.sql.Date 和 java.util.Date之间,有些微妙的关系。

如何将Date类型插入数据库中,成为好多人的一个不小的障碍。

当然,并不一定要在外部插入时间,因为在数据库中,可以让它自动插入,比如:MSSQL里面,用getdate()来插入当前时间,而在Insert时,便可以不用管它了。但有的时候还是避免不了,要手工插入时间,以更新数据库。

1、java.util.Calendar 格式化时间

Calendar cal = new GregorianCalendar();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;
int day = cal.get(Calendar.DAY_OF_MONTH);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
String week = "";
switch(dayOfWeek) {
case 1:
week = "星期天"; break;
case 2:
week = "星期一"; break;
case 3:
week = "星期二"; break;
case 4:
week = "星期三"; break;
case 5:
week = "星期四"; break;
case 6:
week = "星期五"; break;
default:
week = "星期六"; break;

int hour = cal.get(Calendar.HOUR_OF_DAY); // 24小时制
// int hour = cal.get(Calendar.HOUR); // 12小时制
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
String h,m,s;
if(hour<10) h = "0"+hour; else h = hour+"";
if(minute<10) m = "0"+minute; else m = minute+"";
if(second<10) s = "0"+second; else s = 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 几乎不用,因为没有人只会取出时间,而不用日期。

0

顶一下

 
相关文章 关于 JAVA操作数据库Datetime数据
·在高级的复制中切换主体定义站点
·PostgreSQL 自动Vacuum配置
·如何批量删除数据库中被注入的代码?
·如何更改数据库状态的事务终止
·数据库触发器(Trigger)的一点使用心得
·从IO看数据库底层实现原理

 

 

方法1

SimpleDateFormat s = new SimpleDateFormat("yyyy/MM/dd");         

Date d = s.parse("1987/01/13");  

java.sql.Date date = new java.sql.Date(d.getTime());

 

String dateStr = "2009-11-21";
java.sql.Date date = new java.sql.Date();
date.valueOf(dataStr);

 

 

 

首先加入import java.util.Date头文件

然后用

darr.setsDate(rs.getTimestamp("存储时间"));

获取准确的时分秒时间,而后进行转换

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ").format(dArr.getsDate())

将其转换为24小时进制的年月日时分秒数据即可!对于12小时的只需要将上句改为:

new SimpleDateFormat("yyyy-MM-dd hh:mm:ss ").format(dArr.getsDate())

即可

已经过测试成功读取:2012-05-23 16:26:54

 

 

 

测试数据库:

/*
SQLyog Ultimate - MySQL GUI v8.2
MySQL - 5.1.55-community
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;

create table `datedemo` (
 `id` varchar (96),
 `datedemo` timestamp
);

 

 

package cn.itcast.utils;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.dbutils.QueryRunner;
import org.junit.Test;

public class DaoDemo {

 @SuppressWarnings("static-access")
 @Test
 public void testDateOperation() throws Exception {
  QueryRunner runner = new QueryRunner(new JdbcUtils().getDataSource());
  
  String sql = "insert into datedemo(id,datedemo) values(?,?)";
  String dateString = "2009-10-01 05:35:26";
  SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  //SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  Date date = simpleDateFormat.parse(dateString);
  runner.update(sql,new Object[]{"1",new java.sql.Timestamp(date.getTime())});
  //runner.update(sql,new Object[]{"1",new java.sql.Time(date.getTime())});
  //runner.update(sql,new Object[]{"1",new java.sql.Date(date.getTime())});
 }
}

时间: 2024-11-03 06:20:57

Java.util.Date类型的转化成为数据库中的Date类型。的相关文章

java-使用Java导出excel文档,为何数据库中int类型的导出不成功?

问题描述 使用Java导出excel文档,为何数据库中int类型的导出不成功? 导出工具类 package com.lovefly.util; import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.Field; import java.util.List; import jxl.Workbook; import jxl.write.Label; import jxl.write.Writ

Mysql数据库中把varchar类型转化为int类型的方法_Mysql

在上篇文章给大家讲了MySQL数据库中把int转化varchar引发的慢查询,本文给大家介绍Mysql数据库中把varchar类型转化为int类型的方法,一起看看吧! mysql为我们提供了两个类型转换函数:CAST和CONVERT,现成的东西我们怎能放过? CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值. 这个类型 可以是以下值其中的 一个: BINARY[(N)] CHAR[(N)] DATE DATETIME DECIMAL SIGNED [INTEG

使用ejb往oracle数据库中插入Date型数据,数据库中记录始终是yyyy-mm-dd

问题描述 使用ejb往oracle数据库中插入Date型数据,数据库中记录始终是yyyy-mm-dd 使用ejb往oracle数据库中插入Date型数据,数据库中记录始终是yyyy-mm-dd,但是在插入前我已经转成了yyyy-mm-dd HH:mm:ss格式,插入到数据库中时分秒就掉了,怎么回事 解决方案 应该用timestamp类型吧 解决方案二: http://blog.sina.com.cn/s/blog_af4f958e01015fmx.html 解决方案三: 也许是你使用的界面工具的

asp.net关于根据gridview中取到的值从数据库中读取image类型的图片信息并显示

问题描述 asp.net关于根据gridview中取到的值从数据库中读取image类型的图片信息并显示 前台代码 <asp:GridView ID=""GridView1"" runat=""server"" AutoGenerateColumns=""False"" GridLines=""Vertical"" OnRowCommand=&

从数据库中导出image类型到XML,如何再导入到数据库

问题描述 小弟使用ds.writeXML("c:/new.xml");讲表中的数据写入new.xml文件,其中包含数据表中包含IMAGE类型数据(使用的是SQLserver数据库),现在想将new.xml文件中的IMAGE类型数据导入到数据库中如何操作. 解决方案 解决方案二:用dataset控件解决方案三:楼主,我将SQLserver中存的图像数据文件取出后提示无效,这是什么原因?解决方案四:自己顶一下大家帮忙啊

数据库中取Clob类型字段出现乱码

数据|数据库 DataReader 的默认行为是在整个数据行可用时立即以行的形式加载传入数据.但是,对于二进制大对象 (BLOB) 则需要进行不同的处理,因为它们可能包含数十亿字节的数据,而单个行中无法包含如此多的数据.Command.ExecuteReader 方法具有一个重载,它将采用 CommandBehavior 参数来修改 DataReader 的默认行为.您可以将 CommandBehavior.SequentialAccess 传递到 ExecuteReader 方法来修改 Dat

怎么java来定时的读取到Oracle数据库中的数据

问题描述 在定时的访问数据库时,可不可以在某一条记录处记一个标记,表示的是这次读到这里,在有数据添加进来的是从这条标记初开始insert,在定时到来时,访问这个表的时候从上次的标记开始读,一直到最后一条数据.请问一个各位大侠这个怎么来实现呢? 解决方案 解决方案二:总会有"插入时间"字段吧表中还应该有个标志位,读过的update成Y,每次定时读取时间最早的,标志位不是Y的数据,即可解决方案三:帮顶!关注!

用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中_表单特效

我想动态将text类型的数据加入到TEXTAREA中,如下程序不能正常显示      ShtForm为Form域,Txt_CmpnyPrms为TEXTAREA      Response.Write("<script   language='javascript'>")      tempStr   =   "ShtForm.Txt_CmpnyPrms.innerText   =   '   "   +   HTMLEncode(v_Rs("C

string-java前台向后台传入String怎么转换成Date存入数据库中?

问题描述 java前台向后台传入String怎么转换成Date存入数据库中? 如题: 我问的是双向的,数据库中的Date也能转换成String显示在前台页面. 我用的框架是springmvc+mybatis 我知道两种实现方式: A:自定义类型转换器(实现Converter) 这样的缺点是只能单向转换.如果我要双向转换,就需要写两个转换器(麻烦) B:继承StrutsTypeConverter,这个是struts中的一个类,我现在没有用struts2. 我想问一下,写一个类型转换器,是不是不需要