本文最后更新于:December 3, 2021 pm
用于解决,当数据库存储的数据类型为 java.sql.Date ,而 java 应用层存储日期类型为 java.util.Date 。当用 java 应用程序插入带有日期的数据到数据库时,需要进行转换,将java中的 java.util.Date 转化为 数据库中的 java.sql.Date。
目录
java.util.Date:java语言常规应用层面的日期类型,可以通过字符串创建对应的时间对象。但无法直接通过JDBC插入到数据库。
java.sql.Date:不可以通过字符串创建对应的时间对象,只能通过毫秒值创建对象(1970年至今的毫秒值),可以直接通过JDBC插入到数据库。因为 java.sql.Date 是 java.util.Date 的子类。
SimpleDateFormat:格式化和解析日期的具体类。允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
1.String 转 java.util.Date
| public static void main(String[] args) throws Exception { System.out.println("系统当前时间为:" + new java.util.Date()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String da = "2000-07-13"; java.util.Date jud = sdf.parse(da); System.out.println("String -> java.util.Date : " + jud); }
系统当前时间为:Thu Aug 12 23:37:02 CST 2021 String -> java.util.Date : Thu Jul 13 00:00:00 CST 2000
|
2.java.util.Date 转 String
| public static void main(String[] args) throws Exception { System.out.println("系统当前时间为:" + new java.util.Date()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String da = sdf.format(new java.util.Date()); System.out.println("java.util.Date -> String : " + da); }
系统当前时间为:Thu Aug 12 23:36:10 CST 2021 java.util.Date -> String : 2021-08-12
|
3.java.util.Date 转 java.sql.Date
java.sql.Date 不支持字符串转换。只支持毫秒值创建。可以通过 java.util.Date 的getTime()拿到指定日期的毫秒值,再转换为 java.sql.Date 。需要注意的是,它的形式与字符串的形式一样,但它不是字符串。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| public static void main(String[] args) throws Exception { System.out.println("系统当前时间为:" + new java.util.Date()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String da = "2000-07-13"; java.util.Date jud = sdf.parse(da); System.out.println("String -> java.util.Date : " + jud); java.sql.Date jsd = new java.sql.Date(jud.getTime()); System.out.println("java.util.Date -> java.sql.Date : " + jsd);
System.out.println("java.util.Date -> java.sql.Date : " + new java.sql.Date(new java.util.Date().getTime())); }
系统当前时间为:Thu Aug 12 23:52:28 CST 2021 String -> java.util.Date : Thu Jul 13 00:00:00 CST 2000 java.util.Date -> java.sql.Date : 2000-07-13 java.util.Date -> java.sql.Date : 2021-08-12
|
4.DateUtils工具类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| package com.tothefor.OtherTest;
import java.text.ParseException; import java.text.SimpleDateFormat;
public class DateUtils { private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); public static java.util.Date strToutil(String str){ try { return sdf.parse(str); } catch (ParseException e) { e.printStackTrace(); } return null; } public static String utilTostr(java.util.Date jud){ return sdf.format(jud); } public static java.sql.Date utilTosql(java.util.Date jud){ return new java.sql.Date(jud.getTime()); }
}
|