java从数据库中获取当前时间_Java中获取时间以及java.util和java.sql之间时间日期的转换...

一、获取时间和日期

通过java.util从系统获取当前时间

import java.util.Date;

import java.text.SimpleDateFormat;

public class time {

public static void main(String[] args) {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式

System.out.println( df.format(new Date()) );

}

}

//输出:2019-01-07 10:51:35

//df.format(new Date())返回的是一个格式化时间的字符串

获取当前时间,以字符串返回。由返回值可以看到 java.util.Date 获取的是完整的时间包括日期和时间

通过java.sql类型数据获取时间

java.sql.Date ctime = new java.sql.Date(new java.util.Date().getTime());

System.out.println(df.format( ctime ));

java.sql.Timestamp ctime2 = new java.sql.Timestamp(new java.util.Date().getTime());

System.out.println(df.format( ctime2 ));

//输出

//2019-01-07 10:59:28

//2019-01-07 10:59:28

通过输出的结果可以发现,java.sql 存储的时间日期数据也是完整的。

将字符串转换成java.util.Date类型数据

String strDate="2005年04月22日";

SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd日");

try {

Date date = simpleDateFormat.parse(strDate);

System.out.println(date);

} catch (ParseException e) {

e.printStackTrace();

}

//输出Fri Apr 22 00:00:00 CST 2005

将毫秒数转换成java.util.Date类型数据

long now=System.currentTimeMillis();

System.out.println("毫秒数:"+now);

Date dNow=new Date(now);

System.out.println("日期:"+dNow);

//输出

//毫秒数:1546830663261

//日期:Mon Jan 07 11:11:03 CST 2019

二、数据库中存储日期的三种数据类型

Mysql中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。

Date数据类型:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。支持的时间范围为“1000-00-00”到“9999-12-31”。

Datetime类型:存储既有日期又有时间的数据。存储和显示的格式为 “YYYY-MM-DD HH:MM:SS”。支持的时间范围是“1000-00-00 00:00:00”到“9999-12-31 23:59:59”。

Timestamp类型:也是存储既有日期又有时间的数据。存储和显示的格式跟Datetime一样。支持的时间范围是“1970-01-01 00:00:01”到“2038-01-19 03:14:07”。

所有不符合上面所述格式的数据都会被转换为相应类型的0值。(0000-00-00或者0000-00-00 00:00:00)

三、数据库中三种数据对应Java中获取数据的存储结果

数据库数据类型为date

Timestamp ctime = new java.sql.Timestamp(new java.util.Date().getTime());

pstmt.setTimestamp(11, ctime);

//存入数据:2019-01-07

java.sql.Date ctime = new java.sql.Date(new java.util.Date().getTime());

pstmt.setDate(4, ctime);

//存入数据:2019-01-07

数据库数据类型为datatime

Timestamp ctime = new java.sql.Timestamp(new java.util.Date().getTime());

pstmt.setTimestamp(11, ctime);

//存入数据:2019-01-07 10:35:10

Date ctime = new java.sql.Date(new java.util.Date().getTime());

pstmt.setDate(4, ctime);

//存入数据:2019-01-07 00:00:00

数据库数据类型为timestamp

java.sql.Timestamp ctime = new java.sql.Timestamp(new java.util.Date().getTime());

pstmt.setTimestamp(11, ctime);

//存入数据:2019-01-07 10:42:14

java.sql.Date ctime = new java.sql.Date(new java.util.Date().getTime());

pstmt.setDate(4, ctime);

//存入数据:2019-01-07 00:00:00

由datatime和timestamp的对比可以看出,两者在数据库中的存储内容相同(格式不同),关于timestamp类型数据的取值范围问题参考:[id1041]。其次,虽然在java.sql.Timestamp和java.sql.Date中都存储的是完整的时间日期数据,但是在向数据库写入时结果却不相同。

四、java.util和java.sql之间时间日期的转换

java.util.Date通常情况下用它获取当前时间或构造时间,java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分。它们都有getTime方法返回毫秒数,都可以直接构造

通过getTime()方法将util.date转换成sql.date

java.util.Date utilDate = new java.util.Date(); //获取当前时间

java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); //通过getTime()转换

通过getTime()方法将sql.date转换成util.date

java.util.Date utilDate = new java.util.Date(sqlDate.getTime()); //通过getTime()转换,一般sql.date在数据库的存取时使用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值