在Java中String和Date、Timestamp之间的转换
一、string与date(java.util.date)互转
1.1 string -> date
string datestr = "// ::"; 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(); } string datestr = "2010/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(); }
1.2 date -> string
日期向字符串转换,可以设置任意的转换格式format
string datestr = ""; date date = new date(); //format的格式可以任意 dateformat sdf = new simpledateformat("yyyy/mm/dd hh:mm:ss"); dateformat sdf = new simpledateformat("yyyy-mm-dd hh/mm/ss"); try { datestr = sdf.format(date); system.out.println(datestr); datestr = sdf.format(date); system.out.println(datestr); } catch (exception e) { e.printstacktrace(); } 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()方法
timestamp ts = new timestamp(system.currenttimemillis()); string tsstr = "-- ::"; try { ts = timestamp.valueof(tsstr); system.out.println(ts); } catch (exception e) { e.printstacktrace(); } 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为其他格式,可考虑重新解析下字符串,再重组~~
2.2 timestamp -> string
使用timestamp的tostring()方法或者借用dateformat
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(); } 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
timestamp ts = new timestamp(system.currenttimemillis()); date date = new date(); try { date = ts; system.out.println(date); } catch (exception e) { e.printstacktrace(); } 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用他的gettime()方法得到long值,再以这个long值构造一个java.util.date对象,这样就可以对这个date对象操作了。不如说 new simpletimeformat("yyyyy-mm-dd hh:mm:ss").format()等等
推荐阅读
-
在Java中String和Date、Timestamp之间的转换
-
AXIS2中OMElement和Java对象之间的转换 分享 博客分类: web service JavaSOAPWebBeanXML
-
Java中string和int的互相转换问题
-
python3中bytes和string之间的互相转换
-
python3中bytes和string之间的互相转换
-
Java 中 Date 与 Calendar 之间的编辑与转换实例详解
-
Java8中 LocalDate和java.sql.Date的相互转换操作
-
Java 中 Date 与 Calendar 之间的编辑与转换实例详解
-
Java中Date,Calendar,Timestamp的区别以及相互转换与使用
-
Java中Date,Calendar,Timestamp的区别以及相互转换与使用