java date 数据库 date_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 voidgetDateTime() 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 voidgetCurrentStrTime(){

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= newDate();

Timestamp timeStamp= newTimestamp(date.getTime());

故在生成java.utils.Date时,将时间精确到s,然后使用预编译语句执行SQL语句

Date date= newDate();

Timestamp timeStamp= newTimestamp(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级

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值