java.sql.Date和java.util.Date的处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fhf2424045058/article/details/84066576

Bean类

import java.util.Date;

private Date active_time;//启用时间
private Date insert_time;//入库时间

数据库字段:

"ACTIVE_TIME" DATE, 
"INSERT_TIME" DATE,

service层:

IncreDataBean idb=null;
idb.setActive_time(DateUtil.S2D(increList[5]));
idb.setInsert_time(DateUtil.S2D(DateUtil.getcurDateString()));

utils类:

1、获取当前时间

import java.util.Date;

public static String getcurDateString(){
		DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = new Date();
		Calendar calendar = Calendar.getInstance();// 日历对象
		calendar.setTime(date);// 设置当前日期
		String curfirstDay  = format.format(calendar.getTime());// 获取格式化后的时间
		return curfirstDay;
	}

2、将String类型的日期转为java.util.Date类型:

import java.util.Date;

public static Date S2D(String activetime){
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date=null;
		try {
			date = sdf.parse(activetime);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return date;
	}

dao层:

PreparedStatement  pst=conn.prepareStatement(InsertFullSql);
pst.setTimestamp(5,new java.sql.Timestamp(fullDataBean.getActive_time().getTime()));
pst.setTimestamp(6,new java.sql.Timestamp(fullDataBean.getInsert_time().getTime()));
存入数据库的日期格式为:
2018/11/14 11:18:54

关于java.sql.Date和java.util.Date的说明

1、java.sql.Date为 java.util.Date的一个子类,继承了java.util.Date中的方法,
2、java.sql.date对应数据库中的date类型,而父类java.util.date为Java里的对象类型
3、java.util.Date把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 输出,而 java.sql.Date 则格式化日期转义形式 yyyy-mm-dd 的日期。
4、插入到数据库的时间要精确到秒,只有用Timestamp来进行保存,由于Timestamp是子类,因此写好的bean里面不需要修改数据类型。 若只需要存入日期,就可以用

 pst.setDate(6, new java.sql.Date(fullDataBean.getInsert_time().getTime()));

方法:

  • pst.setDate(int i , java.sql.Date date);

  • 将java.util.Date转为java.sql.Date

java.util.Date ud = new java.util.Date();   
java.sql.Date sd = new java.sql.Date(ud.getTime());

由于存入到数据库的字段的类型是date,在用sql语句查询时,需要转为char

select to_char(insert_time,'yyyy-mm-dd hh24:mi:ss') from  np_increment_data_20181115 where rownum<10;

在这里插入图片描述

不用to_char进行查询的话查询的结果是:
在这里插入图片描述

总结:个人认为数据库的字段类型最好是varchar 或varchar2,或者char,这样在存入或取出的时候,在程序里对日期进行转换,这样会更便于开发。

文章链接:https://blog.csdn.net/fu_manxing/article/details/52189236

猜你喜欢

转载自blog.csdn.net/fhf2424045058/article/details/84066576