最完整的一个网页: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())});
 }
}

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

  1. 【Mybatis】Mybatis将String类型的0存到数据库中的number类型字段中,变成了空;

    一.问题 Mybatis将String类型的0存到数据库中的number类型字段中,变成了空: 二.分析 自己写了一个自动写代码的脚本,带入springBatch后,读取文件时,少了序列号0-9的记录 ...

  2. oracle+资料类型不一致吗,oracle数据库中,字段类型不一致,导致查询慢

    最近一个WEBSERVICE突然变慢了,后查询发现,后台查询也非常慢(记录条数800多万),索引也有,如下语句 SELECT P.ID,P.RECORD_ID,P.KEY_NAME,P.KEY_CON ...

  3. mysql数据库中常用的类型_MySQL数据库中常用字段类型

    MySQL数据库中常用字段类型 整数型:TINYINT,SMALLINT,INT,BIGINT 小数型:FLOAT,DOUBLE,DECIMAL(M,D) 字符型:CHAR,VARCHAR 日期型:D ...

  4. php 查询datetime,急急PHP,数据库中createtime字段类型为datetime,怎样根据这个查询一段时间内的数据...

    数据库中createtime字段类型为datetime,是年月日时分秒,怎样把他转换成时间戳?数据很多,一条好转换,可是那么多怎么办? 回复讨论(解决方案) select unix_timestamp ...

  5. c语言sqlite3写数据类型,在sqlite数据库中,int类型不等于integer数据类型

    在sqlite数据库中,int类型不等于integer数据类型 这些天一直在忙销售管理软件易卖通客户端的程序编写,由于需要采用本地数据缓存机制来提高程序的数据访问效率,所以需要在客户端使用一个小巧的本 ...

  6. java excel 导入 关闭,excel关联别的表格数据库-java实现excel表导入,有的字段数据库中没有,需要关......

    excel中我想用另一张表的内容我数据库,当我在一个... 用VLOOKUP函数,=VLOOKUP(lookup_value,table_array,col_index_num,range_looku ...

  7. 取java.sql.date日期_JAVA 处理时间 - java.sql.Date、java.util.Date与数据库中的Date字段的转换方法[转]...

    1.如何将java.util.Date转化为java.sql.Date? 转化: java.sql.Date sd; java.util.Date ud; //initialize the ud su ...

  8. java中将date插入mysql中date_JAVA 处理时间 - java.sql.Date、java.util.Date与数据库中的Date字段的转换方法[转]...

    1.如何将java.util.Date转化为java.sql.Date? 转化: java.sql.Date sd; java.util.Date ud; //initialize the ud su ...

  9. Java中Long型数据类型对应MySQL数据库中哪种类型?

    Long型id数据对应MySQL数据库中 bigint 数据类型: System.out.println(1==1L); //tureSystem.out.println(1L); //1System ...

最新文章

  1. 2022-2028年中国白手套行业市场全景调查及发展前景分析报告
  2. kali linux提示安装系统失败,kali“安装系统”失败分析及解决
  3. 数据可视化与数据预处理
  4. 【Android 应用开发】BluetoothDevice详解
  5. vi-vim常用命令
  6. 阿里为什么建议给MVC三层架构多加一层Manager层?
  7. python seek tell_PYTHON学习14.09:Python seek()和tell()函数详解
  8. 【转】DPDK(一):专业术语
  9. 使用devops的团队_具有DevOps心态的团队的蓝图
  10. NG-ZORRO 7.3.0 发布,Ant Design 的 Angular 实现
  11. C++开发需要掌握哪些技能?
  12. Kepware欧姆龙驱动连接选型大全
  13. 虚拟服务器软件,VMware ESXi(服务器虚拟化软件) V7.0 官方版
  14. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛.J强迫症的序列
  15. 2022最新 B站PC端下载视频方法
  16. 如何去做一个完整的网站SEO优化方案!
  17. PowerDesigner16配置显示注释comment配置方法
  18. ubuntu 强制退出_强制在Ubuntu中退出无响应的图形应用程序
  19. win10计算机无法搜索,win10搜索框没反应怎么办_win10电脑搜索框点击无反应如何解决...
  20. 表白网页自助申请系统

热门文章

  1. VTK:多个视口用法实战
  2. JavaScript实现更新数字指定偏移量上的值updateBit算法(附完整源码)
  3. wxWidgets:wxRichTextEvent类用法
  4. wxWidgets:wxDialUpManager类用法
  5. boost::process::ipstream相关的测试程序
  6. boost::metis_reader用法的测试程序
  7. ITK:使用写访问权迭代图像中的区域
  8. ITK:计算代码点之间的时间
  9. VTK:可视化算法之CreateBFont
  10. VTK:图片之ImageThreshold