来自 新葡亰数据库 2019-11-20 12:39 的文章
当前位置: 澳门新葡亰app > 新葡亰数据库 > 正文

能够设置跋扈的转移格式format,MySQL中定义的字段

主题素材求证:使用的MySQL是5.1.37版本,用的mysql-connector-java-5.0.4.jar版本,在java文件中定义的字段是Date类型,MySQL中定义的字段类型是datetime类型的,

 

品尝了以下措施都不成功,报的大谬不然还是四个,方法如下:

一、String与Date(java.util.Date)互转

1.率先个章程:

 

//  Date date = new Date();
//  shop.setLastEditTime(date);

     1.1 String -> Date

2.次之个艺术:

 

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  Timestamp ts = new Timestamp(System.currentTimeMillis());
  String strDate = sdf.format(ts);
  shop.setLastEditTime(Timestamp.valueOf(strDate));

Java代码  

新兴百度查贴吧,说有一点都不小大概是jar包版本冲突难点,但是原来代码时能够运作的,而那边不可能运转,就尝试了把自个儿引进的包mysql-connector-java-5.0.4.jar换来高版本的,难题成功解决。

  1. String dateStr = "2010/05/04 12:34:23";   
  2.         Date date = new Date();   
  3.         //注意format的格式要与日期String的格式相匹配  
  4.         DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");   
  5.         try {   
  6.             date = sdf.parse(dateStr);   
  7.             System.out.println(date.toString());   
  8.         } catch (Exception e) {   
  9.             e.printStackTrace();   
  10.         }  

    String dateStr = "二零零六/05/04 12:34:23"; Date date = new Date(); //注意format的格式要与日期String的格式相相称 DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); try { date = sdf.parse(dateStr); System.out.println(date.toString()); } catch (Exception e) { e.printStackTrace(); }

后来又尝试了从哪个版本开首不平时的,原本是mysql-connector-java-5.0.5.jar伊始前边的多少个版本都好使。

 

换到高版本的多少个jar包后,以上的五个章程都足以接纳。

 

实际的由来不掌握MySQL进行了何等优化,只是驾驭了缓慢解决的方式,有知道的招待来讲下原因

  1.2 Date -> String

 

   日期向字符串转变,能够设置狂妄的调换格式format

Java代码  

  1. String dateStr = "";   
  2.         Date date = new Date();   
  3.         //format的格式能够放肆   
  4.         DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");   
  5.         DateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");   
  6.         try {   
  7.             dateStr = sdf.format(date);   
  8.             System.out.println(dateStr);   
  9.             dateStr = sdf2.format(date);   
  10.             System.out.println(dateStr);   
  11.         } catch (Exception e) {   
  12.             e.printStackTrace();   
  13.         }  

    String dateStr = ""; Date date = new Date(); //format的格式能够自便 DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); DateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss"); try { dateStr = sdf.format(date); System.out.println(dateStr); dateStr = sdf2.format(date); System.out.println(dateStr); } catch (Exception e) { e.printStackTrace(); }

 二、String与Timestamp互转

 

 

   2.1 String ->Timestamp

 

 

   使用Timestamp的valueOf()方法

Java代码  

  1. Timestamp ts = new Timestamp(System.currentTimeMillis());   
  2.         String tsStr = "2011-05-09 11:49:45";   
  3.         try {   
  4.             ts = Timestamp.valueOf(tsStr);   
  5.             System.out.println(ts);   
  6.         } catch (Exception e) {   
  7.             e.printStackTrace();   
  8.         }  

    Timestamp ts = new Timestamp(System.currentTimeMillis()); String tsStr = "2011-05-09 11:49:45"; try { ts = Timestamp.valueOf(tsStr); System.out.println(ts); } catch (Exception e) { e.printStackTrace(); }

   注:String的种类必需形如: yyyy-mm-dd hh:mm:ss[.f...] 这样的格式,中括号表示可选,否则报错!!!

    借使String为此外格式,可构思重新解析下字符串,再结合~~

 

澳门新葡亰app,    2.2 Timestamp -> String

 

  使用Timestamp的toString()方法照旧借用DateFormat

 

Java代码  

  1. 澳门新葡亰官网APP,Timestamp ts = new Timestamp(System.currentTimeMillis());   
  2.         String tsStr = "";   
  3.         DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");   
  4.         try {   
  5.             //方法一   
  6.             tsStr = sdf.format(ts);   
  7.             System.out.println(tsStr);   
  8.             //方法二   
  9.             tsStr = ts.toString();   
  10.             System.out.println(tsStr);   
  11.         } catch (Exception e) {   
  12.             e.printStackTrace();   
  13.         }  

    Timestamp ts = new Timestamp(System.currentTimeMillis()); String tsStr = ""; DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); try { //方法一 tsStr = sdf.format(ts); System.out.println(tsStr); //方法二 tsStr = ts.toString(); System.out.println(tsStr); } catch (Exception e) { e.printStackTrace(); }

 相当轻易能够看出来,方法生机勃勃的优势在于能够灵活的安装字符串的样式。

三、Date( java.util.Date )和Timestamp互转

 

  注解:查API可见,Date和Timesta是父亲和儿子类关系

 

 

  3.1 Timestamp -> Date

 

 

Java代码  

  1. Timestamp ts = new Timestamp(System.currentTimeMillis());   
  2.         Date date = new Date();   
  3.         try {   
  4.             date = ts;   
  5.             System.out.println(date);   
  6.         } catch (Exception e) {   
  7.             e.printStackTrace();   
  8.         }  

    Timestamp ts = new Timestamp(System.currentTimeMillis()); Date date = new Date(); try { date = ts; System.out.println(date); } catch (Exception e) { e.printStackTrace(); }

 非常粗大略,然而那时候date对象指向的实业却是多个Timestamp,即date具备Date类的法子,但被遮住的办法的实施实体在Timestamp中。

 

 

   3.2 Date -> Timestamp

 

   父类无法直接向子类转变,可依据中间的String~~~~

 

 

java.sql.Date 只存款和储蓄日期数据不存款和储蓄时间数额
// 会遗失时间数额
preparedStatement.setDate(1, new java.sql.Date(date.getTime()));
//能够那样来管理
preparedStatement.setTimestamp(1, new java.sql.Timestamp(new java.util.Date().getTime()));

//想要得到完全的数目,富含日期和时间,能够这么
java.util.Date d = resultSet.getTimestamp(1);
//那样管理更方便一些,能够幸免有个别地下Timestamp 难题
java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime());
温馨补的话
这样的话:
        往数据仓库储存款和储蓄的时候能够吸收接纳 java.util.Date类型 再用getTime()方法获得代表充足Date对象的long值,再以那一个long值 构造贰个Timestamp对象 存进数据库中。
       从存数据库里取的时候,能够先得到Timestamp用他的get提姆e()方法得到long值,再以这几个long值构造二个java.util.Date对象,那样就足以对这些Date对象操作了。不比说 new SimpleTimeFormat("yyyyy-MM-dd HH:mm:ss").format()等等

本文由澳门新葡亰app发布于新葡亰数据库,转载请注明出处:能够设置跋扈的转移格式format,MySQL中定义的字段

关键词: