java 和具体的数据库结合Date类型转换

在开发web应用中,针对不同的数据库日期类型,我们需要在我们的程序中对日期类型做各种不同的转换。若对应数据库数据是oracle的Date类型,即只需要年月日的,可以选择使用java.sql.Date类型,若对应的是MSsqlserver 数据库的DateTime类型,即需要年月日时分秒的,选择java.sql.Timestamp类型

你可以使用dateFormat定义时间日期的格式,转一个字符串即可

package test;

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class Datetest {

	//*method 将字符串类型的日期转换为一个timestamp(时间戳记java.sql.Timestamp)
	//*@param dateString 需要转换为timestamp的字符串
	//*@return dataTime timestamp

	public final static java.sql.Timestamp string2Time(String dateString)
	throws java.text.ParseException {
	DateFormat dateFormat;
	dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS", Locale.ENGLISH);//设定格式
	//dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);
	dateFormat.setLenient(false);
	java.util.Date timeDate = dateFormat.parse(dateString);//util类型
	java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型
	return dateTime;
	}

//	*method 将字符串类型的日期转换为一个Date(java.sql.Date)
//	*@param dateString 需要转换为Date的字符串
//	*@return dataTime Date

	public final static java.sql.Date string2Date(String dateString)throws java.lang.Exception {
		DateFormat dateFormat;
		dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
		dateFormat.setLenient(false);
		java.util.Date timeDate = dateFormat.parse(dateString);//util类型
		java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql类型
		return dateTime;
	}

	public static void main(String[] args){
		Date da = new Date();
		//	注意:这个地方da.getTime()得到的是一个long型的值
		System.out.println(da.getTime());

		//	由日期date转换为timestamp
		//	第一种方法:使用new Timestamp(long)
		Timestamp t = new Timestamp(new Date().getTime());
		System.out.println(t);

		//	第二种方法:使用Timestamp(int year,int month,int date,int hour,int minute,int second,int nano)
		Timestamp tt = new Timestamp(Calendar.getInstance().get(Calendar.YEAR) - 1900, Calendar.getInstance().get(
				Calendar.MONTH), Calendar.getInstance().get(
						Calendar.DATE), Calendar.getInstance().get(
								Calendar.HOUR), Calendar.getInstance().get(
										Calendar.MINUTE), Calendar.getInstance().get(
												Calendar.SECOND), 0);
		System.out.println(tt);

		try {
			String sToDate = "2005-8-18";//用于转换成java.sql.Date的字符串
			String sToTimestamp = "2005-8-18 14:21:12.123";//用于转换成java.sql.Timestamp的字符串
			Date date1 = string2Date(sToDate);
			Timestamp date2 = string2Time(sToTimestamp);
			System.out.println("Date:"+date1.toString());//结果显示
			System.out.println("Timestamp:"+date2.toString());//结果显示
		}catch(Exception e) {
			e.printStackTrace();
		}
	}
}


一、Date的构造函数

1.1构造一个反映当时时间的Date实例
Date
public Date()
构造一个Date对象并对其进行初始化以反映当前时间。

1.2从一个长整型数据构造一个Date实例
Date
public Date(long date)
构造一个Date对象,并根据相对于GMT 1970年1月1日00:00:00的毫秒数对其进行初始化。 
参数: 
date - 相对于GMT 1970年1月1日00:00:00的毫秒数。

1.3从年月日时分秒构造一个Date实例
Date
public Date(int year, int month,int date)
public Date(int year,int month,int date,int hrs,int min)
public Date(int year,int month,int date,int hrs,int min,int sec)
这三个构造函数均不推荐使用,在JDK 1.1版中,分别被Calendar.set(year + 1900, month, date)或GregorianCalendar(year + 1900, month, date)、Calendar.set(year + 1900, month, date, hrs, min)或 GregorianCalendar(year + 1900, month, date, hrs, min)、Calendar.set(year + 1900, month, date, hrs, min, sec)或GregorianCalendar(year + 1900, month, date, hrs, min, sec)代替。


参考自:http://blog.csdn.net/kyfg27_niujin/article/details/8077919

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值