java Date和数据库中各种时间的处理
在开发web程序的时候,数据库的设计避免不了要设置有关于时间存储的字段。这时候需要通过java的API进行时间字段的存入。
一、mysql数据库为例子
如mysql数据库中的Date、DateTime、TimeStamp、Time类型
1、Date:没有时间部分。以YYYY-MM-DD格式显示。支持的范围是'1000-01-01'到'9999-12-31'。需要3字节。
2、DateTime:有日期和时间部分。以YYYY-MM-DD HH:MM:SS格式显示。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。需要8字节。
3、Time:表示一天中的时间。以HH:MM:SS格式显示。支持的范围是'00:00:00'到'23:59:59'。
4、TimeStamp:默认情况下是使用当前的时间。以YYYY-MM-DD HH:MM:SS格式显示。需要4字节。
注意:
(1) 在书写sql语句的时候,注意写入日期字段的时候用 ' ' 进行引入。如:values( ' timeOne ' )
(2) 在日期的输入格式有很多种。如常用的"yyyy年MM月dd日 HH时mm分ss秒"、"yyyy-MM-dd HH:mm:ss"、"yyyy/MM/dd HH:mm:ss"
二、各种Date之间的转换
1、获取当前系统时间和设置输出格式
Date date = new Date(); // 设置日期格式 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = simpleDateFormat.format(date); System.out.println(format);//输出格式:2020-02-13 10:30:44
2、String转为Date
String time = "2020-02-13 10:30:44"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = null; try { date = simpleDateFormat.parse(time);// 转为Date } catch (ParseException e) { e.printStackTrace(); } System.out.println(date); // Thu Feb 13 10:30:44 CST 2020
3、String转为sql包中的Date
String str = "2020-02-13"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); java.sql.Date sqlDate = null;// sql包中的Date try { java.util.Date utildate = simpleDateFormat.parse(str); sqlDate = new java.sql.Date(utildate.getTime()); } catch (ParseException e) { e.printStackTrace(); } System.out.println(sqlDate); //转换为 sql包中的Date 2020-02-13
4、Date转为String
Date date = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str = simpleDateFormat.format(date); System.out.println(str); //输出格式 2020-02-13 10:38:10
5、Date转为Datetime/Timestamp
Date date = new Date(); long time = date.getTime(); Timestamp timestamp = new Timestamp(time); System.out.println(timestamp); // 2020-02-13 10:47:40.349
6、util.Date转换为sql.Date
//util.Date Date date = new Date(); long longTime = date.getTime(); // 1581562292229 //sql.Date java.sql.Date sDate = new java.sql.Date(longTime); System.out.println(sDate); // 2020-02-13 System.out.println(longTime);

浙公网安备 33010602011771号