SimpleDateFormat

来源:互联网 发布:淘宝怎么开团购 编辑:程序博客网 时间:2024/06/07 14:30

日期转换用到了SimpleDateFormat类,其中有两个方法format()和parse(),下面讲一下用法及可能出现的问题。

parse方法:将字符串类型(Java.lang.String)解析为日期类型(java.util.Date)
format方法:将日期类型(Date)数据格式化为字符串(String)

1.先说parse(),parse()是将字符串类型的解析为日期类型的

[java] view plain copy print?
  1. public static void main(String[] args) {    
  2.         String str = "2013-01-21 15:10:20";    
  3.         Date date = null;    
  4.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");    
  5.         try {    
  6.             date = sdf.parse(str);    
  7.         } catch (ParseException e) {    
  8.             System.out.println(e.getMessage());    
  9.         }    
  10.         System.out.println(date);    
  11.         System.out.println(date.getTime());    
  12.     }    
2.format(),这个方法是将日期类型的数据格式化为字符串
[java] view plain copy print?
  1. public static void main(String[] args){  
  2.  <span style="white-space:pre"> </span>SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");  
  3.  <span style="white-space:pre"> </span>String a=dateformat.format(new Date());  
  4.  <span style="white-space:pre"> </span>System.out.println("时间:"+a);  
  5.    
  6. }  
3.SimpleDateFormat是线程不安全的,为了安全,可以对操作进行加锁。
[java] view plain copy print?
  1. public static void main(String[] args) throws Exception {  
  2.         String str = "2013-01-21 15:10:20";    
  3.         System.out.println(parseString(str));  
  4.           
  5.     }  
  6.       
  7.     public static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");  
  8.     private static final Object LOCK = new Object();  
  9.     public static Date parseString(String datetime) throws Exception {  
  10.         synchronized (LOCK) {  
  11.             return format.parse(datetime);  
  12.         }  
  13.     }  
4.有的时候会报这种错误
[java] view plain copy print?
  1. Exception in thread "main" java.text.ParseException: Unparseable date: "2013-01-21 15:10:20"  
  2.     at java.text.DateFormat.parse(DateFormat.java:357)  
  3.     at com.date.DateTest.parseString(DateTest.java:20)  
  4.     at com.date.DateTest.main(DateTest.java:12)  
这里要注意一下,使用parse方法将String转为Date时,SimpleDateFormat定义的格式与参数String的格式必须完全一致,不然就会出现Unparseable date。