Java:String和Date、Timestamp之间的转换_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java:String和Date、Timestamp之间的转换

Java:String和Date、Timestamp之间的转换

 2013/8/23 15:57:00  碧水千顷  程序员俱乐部  我要评论(0)
  • 摘要:一、String与Date(java.util.Date)互转1.1String->Date注:并不是所有的simpleDateFormat对象都可以解析String,必须两者模式相同才行,例如:"2013/01/01"的匹配模式就为"yyyy/MM/dd"。StringdateStr="2010/05/0412:34:23";Datedate=newDate();//注意format的格式要与日期String的格式相匹配DateFormatsdf=newSimpleDateFormat
  • 标签:Java

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

?

?1.1 String -> Date

注:并不是所有的simpleDateFormat对象都可以解析String,必须两者模式相同才行,例如:"2013/01/01"的匹配模式就为"yyyy/MM/dd"。

    class="dp-j" style="margin-bottom: 1px; padding-top: 2px; padding-bottom: 2px; border: 1px solid #d1d7dc; color: #2b91af;">
  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. ????????} ?

? 1.2 Date -> String

???日期向字符串转换,可以设置任意的转换格式format

  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与Timestamp互转

?

?? 2.1 String ->Timestamp

?? 使用Timestamp的valueOf()方法

  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. ????????}??

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

??? 如果String为其他格式,可考虑重新解析下字符串,再重组~~

?

??? 2.2 Timestamp -> String

? 使用Timestamp的toString()方法或者借用DateFormat

  1. 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. ????????}??

?很容易能够看出来,方法一的优势在于可以灵活的设置字符串的形式。

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

?

? 声明:查API可知,Date和Timesta是父子类关系

? 3.1 Timestam -> Date

?

  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. ????????}??

?很简单,但是此刻date对象指向的实体却是一个Timestamp,即date拥有Date类的方法,但被覆盖的方法的执行实体在Timestamp中。

?? 3.2 Date -> Timestamp

?? 父类不能直接向子类转化,可借助中间的String~~~~

?? 注:使用以下方式更简洁

?? Timestamp ts = new Timestamp(date.getTime());

发表评论
用户名: 匿名