java中Date/Time/Timestamp对应sql

时间:2022-05-05 17:02:07
java.lang.Object 
....|__java.util.Date 
..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time 
【父类】java.util.Date日期格式为:年月日时分秒 
【子类】java.sql.Date日期格式为:年月日[只存储日期数据不存储时间数据] 
【子类】java.sql.Time日期格式为:时分秒 
【子类】java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒) 
针对不同的数据库选用不同的日期类型 
·Oracle的Date类型,只需要年月日,选择使用java.sql.Date类型 
·MS Sqlserver数据库的DateTime类型,需要年月日时分秒,选择java.sql.Timestamp类型 
------------------------------------------ 
四种对象内部均使用系统时间作为标准数据 
·系统时间:自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数,即格林尼治标准时间(GMT) 
·本地时间:根据时区不同打印出来的时间[当时区为GMT+0时,系统时间与本地时间相同] 
我们使用的是以本地时间为参考标准的 
------------------------------------------ 
生成日期对象 
方法一: 
除了父类,三个子类均可通过给其发送valueOf()消息,生成所需格式的对象。 
java.sql.Date sqlDate = java.sql.Date.valueOf("2010-08-20"); 
java.sql.Time time = java.sql.Time.valueOf("13:44:53"); 
java.sql.Timestamp time = java.sql.Timestamp.valueOf("2010-08-20 14:06:27.186"); 
方法二: 
·java.util.Date——>java.sql.Date 
new java.sql.Date(new java.util.Date().getTime()); 
new java.util.Date(new java.sql.Date().getTime());//此处IDE报错 
·java.util.Date——>java.sql.Timestamp 
new java.sql.Timestamp(new java.util.Date().getTime());//此处IDE报错 
·java.util.Date——>java.sql.Time 
new java.sql.Time(new java.util.Date().getTime()); 
·Timestamp timestamp  = new Timestamp(System.currentTimeMillis()); 
------------------------------------------ 
我们可以使用DateFormat处理字符串来定义时间日期的格式 
注:String都是先转换为java.util.Date,然后再转换成所需的格式 
Calendar 
Calendar calendar=Calendar.getInstance(); 
//获得当前时间,声明时间变量 
int year = calendar.get(Calendar.YEAR); 
int month = calendar.get(Calendar.MONTH); 
month = month+1; //[0,11] 
int date = calendar.get(Calendar.DATE); 
String today = ""+year+"-"+month+"-"+date+""; 
.................................. 
String to Date[java.sql.Date] 
String to Time[java.sql.Timestamp] 
.................................. 
DateFormat dateFormat; 
dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); 
//dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS", Locale.ENGLISH);//设定格式 
dateFormat.setLenient(false); 
java.util.Date timeDate = dateFormat.parse(dateString);//util类型 
java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql类型 
// java.sql.Timestamp dateTime = new java.sql.Timestamp 
(timeDate.getTime());//Timestamp类型 
Java代码  java中Date/Time/Timestamp对应sql
public class DateTest  {   
    public static void main(String[] args) throws ParseException{   
        try{   
             String dateString = "2010-08-20 12:00:00.125";   
             DateFormat dateFormat;   
             dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS",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型   
             System.out.println(dateTime);   
        }catch(Exception ex){   
            ex.printStackTrace();   
        }        
    }   
}