j 2 se---日付処理




Calender c = Calender.getInstance();
//Calender      ,Calender.getInstance();             GregorianCalender


c.get(XX)//                  
c.get(c.YEAR);c.get(c.MONTH);c.get(c.DAY_OF_MONTH);
c.get(c.HOUR)......

c.add(c.DAY_OF_YEAR,315); // c     315 

  :Calendar.DATE =Calendar.DAY_OF_MONTH       5。。。               。。?
  Calendar.DATE     set ,  c.set(Calendar.Date) ;               
  Calendar.DAY_OF_MONTH     c.get(Calendar.DAY_OF_MONTH); ,                      
c.get(Calendar.DAY_OF_WEEK);                      ,             。。。
DAY_OF_WEEK_IN_MONTH:    day              
DAY_OF_YEAR :  day         

Calendar.Hour ----     10   c.get(Calendar.Hour)     10
     16 ,  c.get(Calendar.Hour) ;    4
c.set(Calendar.HOUR,1);   13 ---      

Calendar.HOUR_OF_DAY ----             。。。   16    16 
c.set(Calendar.HOUR_OF_DAY ,1);       


  :c.set(Calendar.DATE,40);             ,  ,set              ,        。。。



  Calender      Data.....          Date,        


   String    Date   。。。

  String Date       ,              
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse("2003-05-03");

      Date      String    。。。        ,    SimpleDateFormat sdf = new SimpleDateFormat("yyyy MM dd ");
String s = sdf.format(d);


------------------------------------------------------------------
    

1.            

Calendar time=Calendar.getInstance(); 
time.clear(); 
time.set(Calendar.YEAR,year); //year   int 
time.set(Calendar.MONTH,i-1);//  ,Calendar       0 
int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//       
 :   set    ,   clear  ,                 

2.Calendar Date    

(1) Calendar   Date 
Calendar cal=Calendar.getInstance(); 
Date date=cal.getTime(); 

(2) Date   Calendar 
Date date=new Date(); 
Calendar cal=Calendar.getInstance(); 
cal.setTime(date); 

3.          (       ) 

Date date=new Date(); 
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
String time=df.format(date); 
System.out.println(time); 

4.           

(1)               
Calendar cal=Calendar.getInstance(); 
cal.set(Calendar.YEAR, 2006); 
cal.set(Calendar.MONTH,; 
cal.set(Calendar.DAY_OF_MONTH, 3); 
int weekno=cal.get(Calendar.WEEK_OF_YEAR); 

(2)              
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 
Calendar cal=Calendar.getInstance(); 
cal.set(Calendar.YEAR, 2006); 
cal.set(Calendar.WEEK_OF_YEAR, 1); 
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
System.out.println(df.format(cal.getTime())); 
  : 
2006-01-02 

5.add() roll()   (    ) 

(1)add()   
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 
Calendar cal=Calendar.getInstance(); 
cal.set(Calendar.YEAR, 2006); 
cal.set(Calendar.MONTH,; 
cal.set(Calendar.DAY_OF_MONTH, 3); 
cal.add(Calendar.DATE, -4); 
Date date=cal.getTime(); 
System.out.println(df.format(date)); 
cal.add(Calendar.DATE, 4); 
date=cal.getTime(); 
System.out.println(df.format(date)); 
  : 
2006-08-30 
2006-09-03 
(2)roll   
cal.set(Calendar.YEAR, 2006); 
cal.set(Calendar.MONTH,; 
cal.set(Calendar.DAY_OF_MONTH, 3); 
cal.roll(Calendar.DATE, -4); 
date=cal.getTime(); 
System.out.println(df.format(date)); 
cal.roll(Calendar.DATE, 4); 
date=cal.getTime(); 
System.out.println(df.format(date)); 
  : 
2006-09-29 
2006-09-03 
  ,roll()        ,    add()  ; 

6.               (      ) 
(1)  Calendar   
public int getIntervalDays(Calendar startday,Calendar endday)...{ 
if(startday.after(endday))...{ 
Calendar cal=startday; 
startday=endday; 
endday=cal; 
} 
long sl=startday.getTimeInMillis(); 
long el=endday.getTimeInMillis(); 

long ei=el-sl; 
return (int)(ei/(1000*60*60*24)); 
} 
(2)  Date   

public int getIntervalDays(Date startday,Date endday)...{ 
if(startday.after(endday))...{ 
Date cal=startday; 
startday=endday; 
endday=cal; 
} 
long sl=startday.getTime(); 
long el=endday.getTime(); 
long ei=el-sl; 
return (int)(ei/(1000*60*60*24)); 
} 
(3)              
public int getDaysBetween (Calendar d1, Calendar d2) ...{ 
if (d1.after(d2)) ...{ 
java.util.Calendar swap = d1; 
d1 = d2; 
d2 = swap; 
} 
int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR); 
int y2 = d2.get(Calendar.YEAR); 
if (d1.get(Calendar.YEAR) != y2) ...{ 
d1 = (Calendar) d1.clone(); 
do ...{ 
days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);//          
d1.add(Calendar.YEAR, 1); 
} while (d1.get(Calendar.YEAR) != y2); 
} 
return days; 
} 
  :                 ,               (        -        )                long    
 :1    (       ) 
java.util.Date myDate=new java.util.Date(); 
long myTime=(myDate.getTime()/1000)-60*60*24*365; 
myDate.setTime(myTime*1000); 
String mDate=formatter.format(myDate); 

7. String   Date ,Long        (   ) 

          (          ,   SimpleDateFormat        ) 
            , substring     --long-   

java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("M/dd/yyyy hh:mm:ss a",java.util.Locale.US); 
java.util.Date d = sdf.parse("5/13/2003 10:31:37 AM"); 
long dvalue=d.getTime(); 
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
String mDateTime1=formatter.format(d); 

8.         

       
SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM F E"); 
java.util.Date date2= formatter2.parse("2003-05 5    "); 
SimpleDateFormat formatter3 = new SimpleDateFormat("yyyy-MM-dd"); 
String mydate2=formatter3.format(date2); 

      
mydate= myFormatter.parse("2001-1-1"); 
SimpleDateFormat formatter4 = new SimpleDateFormat("E"); 
String mydate3=formatter4.format(mydate); 

9. java            

   web   ,            ,                        。         oracle Date  ,        ,      java.sql.Date  ,     MSsqlserver     DateTime  ,          ,  java.sql.Timestamp   
     dateFormat         ,         

class Datetest{ 
*method               timestamp(    java.sql.Timestamp) 
*@param dateString      timestamp     
*@return dataTime timestamp 

public final static java.sql.Timestamp string2Time(String dateString) 
throws java.text.ParseException { 
DateFormat dateFormat; 
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS", Locale.ENGLISH);//     
//dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH); 
dateFormat.setLenient(false); 
java.util.Date timeDate = dateFormat.parse(dateString);//util   
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp  ,timeDate.getTime()    long  
return dateTime; 
} 

*method               Date(java.sql.Date) 
*@param dateString      Date     
*@return dataTime Date 

public final static java.sql.Date string2Date(String dateString) 
throws java.lang.Exception { 
DateFormat dateFormat; 
dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); 
dateFormat.setLenient(false); 
java.util.Date timeDate = dateFormat.parse(dateString);//util   
java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql   
return dateTime; 
} 

public static void main(String[] args){ 
Date da = new Date(); 
  :    da.getTime()      long    
System.out.println(da.getTime()); 

   date   timestamp 

     :  new Timestamp(long) 
Timestamp t = new Timestamp(new Date().getTime()); 
System.out.println(t); 

     :  Timestamp(int year,int month,int date,int hour,int minute,int second,int nano) 
Timestamp tt = new Timestamp(Calendar.getInstance().get( 
Calendar.YEAR) - 1900, Calendar.getInstance().get( 
Calendar.MONTH), Calendar.getInstance().get( 
Calendar.DATE), Calendar.getInstance().get( 
Calendar.HOUR), Calendar.getInstance().get( 
Calendar.MINUTE), Calendar.getInstance().get( 
Calendar.SECOND), 0); 
System.out.println(tt); 

try { 
String sToDate = "2005-8-18";//     java.sql.Date     
String sToTimestamp = "2005-8-18 14:21:12.123";//     java.sql.Timestamp     
Date date1 = string2Date(sToDate); 
Timestamp date2 = string2Time(sToTimestamp); 
System.out.println("Date:"+date1.toString());//     
System.out.println("Timestamp:"+date2.toString());//     
}catch(Exception e) { 
e.printStackTrace(); 
} 
} 
}