zoukankan      html  css  js  c++  java
  • java Date 和 数据库Date,DateTimed

    Java 向数据库中输入datetime类型数据

    Java 可以使用jdbc访问数据库,我们通常使用的时间是java.utils.Date。后来尝试使用java.sql.Date朝数据库中写入时间,发现了一个问题,这些写入的时间,无一例外的没有后面的小时等信息,只有年-月-日

    java.sql.Date只表示数据库中日期的部分如果想向数据库中写入完整的时间,如2016-12-11 17:10:25.000 则需要使用java.sql.Timestamp这个类。

    下面,我给大家介绍下两种东西的使用方法

    字符串和java.utils.Date相互转换

    我们使用DateFormat 类来进行String和Date的转换,而java.utils.Date是我们在java编程中经常使用的。

    字符串转化为Date类型

    public void getDateTime() throws ParseException{
            String str = "2016-12-11 17:17:10"; //字符串格式的时间
            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//要转换的时间格式
            java.util.Date date = dateFormat.parse(str);  //str 转 Date
            System.out.println("Time of Date type:"+date);
        }

    Date类型转化为字符串

            //Date类型转字符串
        public void getCurrentStrTime(){
            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");   // 这里填写的是想要进行转换的时间格式
            java.util.Date date = new java.util.Date();      // 获取当前时间
            String str = dateFormat.format(date);  //Date 转换为 str
            System.out.println("Time of String type: "+str);
        }        

    Java.sql.Date向数据库写入日期(年-月-日)

    这里就需要java.sql.Date和java.utils.Date进行相互转换了,这个转换一般比较容易,利用构造方法和.getTime() 方法进行转化。

    java.utils.Date date = new java.utils.Date();   // 获取当前时间
    java.sql.Date sql_date = new java.sql.Date(date.getTime()); //转换成java.sql.Date
    接着使用PreparedStatement 向数据库中写入时间,即可。
    
    ps.setDate(1, new java.sql.Date(date.getTime()));   // 设置项

    Java.sql.Timestamp向数据库中写入时间(年-月-日  时:分:秒)

    需要注意的是,上边一种方法只能将日期写入到数据库中,为了能够将时间精确到s甚至是ms。我们需要使用java.sql.Timestamp 类型。 
    java.sql.Timestamp 类型的构造函数也可以使用Long进行初始化
    
    Date date = new Date();  
    Timestamp timeStamp = new Timestamp(date.getTime());  
     
    
    故在生成java.utils.Date时,将时间精确到s,然后使用预编译语句执行SQL语句
    
    Date date = new Date();  
    Timestamp timeStamp = new Timestamp(date.getTime()); 
     sql= "insert into flowmeter2(total,std_flow,temp,press,time) values(?,?,?,?,?)";   
            try {  
                PreparedStatement ps = connection.prepareStatement(sql);  
                ps.setString(1, total);  
                ps.setString(2, std_flow);  
                ps.setString(3, temp);  
                ps.setString(4, press);  
                ps.setTimestamp(5, timeStamp);  
                ps.executeUpdate();  
                System.out.println("添加成功!");  
                connection.close();  
    便可以将时间精确到ms级
  • 相关阅读:
    How to alter department in PMS system
    Can't create new folder in windows7
    calculate fraction by oracle
    Long Wei information technology development Limited by Share Ltd interview summary.
    ORACLE BACKUP AND RECOVERY
    DESCRIBE:When you mouse click right-side is open an application and click left-side is attribution.
    ORACLE_TO_CHAR Function
    电脑BOIS设置
    JSP点击表头排序
    jsp+js实现可排序表格
  • 原文地址:https://www.cnblogs.com/Thomas-blog/p/9277124.html
Copyright © 2011-2022 走看看