JAVA的String与Date以及GregorianCalendar之间的像话转换(借助SimpleDateFormat)

  1 package yang.calendarDate;
  2 
  3 import java.text.ParseException;
  4 import java.text.SimpleDateFormat;
  5 import java.util.Calendar;
  6 import java.util.Date;
  7 import java.util.GregorianCalendar;
  8 
  9 /**
 10  * 
 11  * @author Wang Yang
 12  * @version V 1.0
 13  */
 14 
 15 /**
 16  * 关于Date与Calendar以及GregorianCalendar的相关问题
 17  * Date类:
 18  * Date类的实例有一个状态(属性)称之为特定时间点。
 19  * Date类的时间是由距离一个特定时间点的毫秒数来进行表示的。这个特定的时间点就是纪元(epoch),即UTC时间的1970-01-01 00:00:00
 20  * 类库的设计者为了将保存的时间和给时间点的命名来分开,因此Calendar与GregorianCalendar类应运而生。
 21  * GregorianCalendar类替代了Date类中的大部分方法。
 22  */
 23 
 24 /**
 25  * 关于Calendar与String,以及Date之间的相互转化
 26  * 需要借助SimpleDateFormat类来进行转换。
 27  * String与Date之间的相互转化需要借助SimpleDateFormat类的方法的parse和format方法。
 28  * Date转到String需要SimpleDateFormat.format(Date date)方法
 29  * String转到Date需要SimpleDateFormat.parse(String s)方法
 30  * 
 31  * 关于String与Calendar之间的相互转化,需要借助SimpleDateFormat和Date类来进行转化
 32  * Calendar转换为String时,首先通过Calendar的getTime()方法获取Date类型,再通过SimpleDateFormat的format方法转换为String。
 33  * String转换为Calendar时,首先通过SimpleDateFormat的parse方法转换为Date类型,然后再通过Calendar的setTime()方法转化为Calendar。
 34  */
 35 public class CalendarDate {
 36     public static void main(String[] args){
 37         gregorianCalendarToString();
 38     }
 39     
 40     /**
 41      * GregorianCalendar转换到Date
 42      */
 43     public static void gregorianCalendarToDate(){
 44         Calendar calendar = new GregorianCalendar();
 45         Date date = calendar.getTime();
 46         System.out.println(date);
 47     }
 48     
 49     /**
 50      * Date转换为GregorianCalendar
 51      */
 52     public static void dateToGregorianCalendar(){
 53         Date date = new Date(1989-1900,11,10);
 54         Calendar calendar = new GregorianCalendar();
 55         calendar.setTime(date);
 56         System.out.println(calendar.get(Calendar.MONTH));
 57     }
 58     
 59     /**
 60      * Date转为String
 61      */
 62     public static void dateToString(){
 63         Date date = new Date();
 64         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
 65         String s = sdf.format(date);
 66         System.out.println(s);
 67     }
 68     
 69     /**
 70      * String转换为Date
 71      */
 72     public static void stringToDate(){
 73         String s = "1989-05-10 15:05:56";
 74         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
 75         try {
 76             Date date = sdf.parse(s);
 77             System.out.println(date);
 78         } catch (ParseException e) {
 79             // TODO Auto-generated catch block
 80             e.printStackTrace();
 81         }
 82     }
 83     
 84     /**
 85      * String转换为Calendar
 86      */
 87     public static void stringToGregorianCalendar(){
 88         String s = "1879-05-01 12:45:45";
 89         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
 90         try {
 91             Date date = sdf.parse(s);
 92             Calendar calendar = new GregorianCalendar();
 93             calendar.setTime(date);
 94             System.out.println(calendar.get(Calendar.YEAR));
 95             System.out.println(calendar);
 96         } catch (ParseException e) {
 97             // TODO Auto-generated catch block
 98             e.printStackTrace();
 99         }
100     }
101     
102     /**
103      * Calendar转换为String
104      */
105     public static void gregorianCalendarToString(){
106         Calendar calendar = new GregorianCalendar();
107         Date date = calendar.getTime();
108         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
109         String s = sdf.format(date);
110         System.out.println(s);
111     }
112 }
posted @ 2012-11-13 16:13  端木芸萱  阅读(563)  评论(0编辑  收藏  举报