• 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级
  • 相关阅读:
    关于_OPENMP预编译
    Java FlameGraph 火焰图
    java的-cp和-Djava.library.path
    maven依赖包和依赖仓库(2)
    opencv读取图像输入到tensorflow模型中进行运算【cpp】
    NiftyNet 项目了解
    windows编译tensorflow c++库
    关于Tensorflow 的数据读取环节
    Itunes connect上传应用视频 app preview时遇到“无法载入文件”的问题
    Unity 扩展编辑器
  • 原文地址:https://www.cnblogs.com/Thomas-blog/p/9277124.html
Copyright © 2020-2023  润新知