大魚

          java中的時間轉換及時間對比

           SimpleDateFormat函數語法:

            

             G 年代標志符

             y 年

             M 月

             d 日

             h 時 在上午或下午 (1~12)

             H 時 在一天中 (0~23)

             m 分

             s 秒

             S 毫秒

             E 星期

             D 一年中的第幾天

             F 一月中第幾個星期幾

             w 一年中第幾個星期

             W 一月中第幾個星期

             a 上午 / 下午 標記符

             k 時 在一天中 (1~24)

             K 時 在上午或下午 (0~11)

             z 時區

          */

        1. DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");        
        2. DateFormat format 2= new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");        
        3. Date date = null;   
        4. String str = null;                 
        5.            
        6. // String轉Date   
        7. str = "2007-1-18";         
        8. try {   
        9.      date = format1.parse(str);  
        10.      data = format2.parse(str);
        11. } catch (ParseException e) {   
        12.      e.printStackTrace();   
        13. }   
        14.   
        15. //Date轉String
        16. date=new Date();
        17. str=format1.format(date);
        18. str=format2.format(date);

           

          1、Date——>String

          String sdate;

          Date ddate;

          ……

          sdate=(new SimpleDateFormat("yyyy-MM-dd")).format(ddate);

          2、String——>Date

          SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

          sdf.setLenient(false);

          String sdate="2006-06-06";

          Date ddate;

          ddate=sdf.parse(sdate);

          另外Integer、Double等數據包裝類型與String類型的相互轉換為:

          (以Integer為例)

          Integer——>String

          Integer ii;

          String si;

          ……

          si=ii.toString;

          String——>Intteger

          Integer ii;

          String si;

          ……

          ii=Integer.valueOf(si);

          字符串轉換成時間及時間相減:
               1:) SimpleDateFormat formatter = new SimpleDateFormat ("yyyy.MM.dd");
                   //假定像2002.07.04的是合法日期其他都非法。
               String str="2002.07.04";
               ParsePosition pos = new ParsePosition(0);
               Date dt=formatter.parse(str,pos);
              if(dt!=null)
              {
                //是合法日期
              }
               else
              {
                //非法日期
              }

           


           

          2:)
          兩個日期相減
          import java.util.*;
          import java.text.*;
          class a
          {
          public static void main(String[] args)
          {
             String s1 = "2003/08/15 17:15:30";
             String s2 = "2002/09/14 14:18:37";
             try{
             SimpleDateFormat formatter = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss");
            
             ParsePosition pos = new ParsePosition(0);
             ParsePosition pos1 = new ParsePosition(0);
             Date dt1=formatter.parse(s1,pos);
             Date dt2=formatter.parse(s2,pos1);
             System.out.println("dt1="+dt1);
             System.out.println("dt2="+dt2);
             long l = dt1.getTime() - dt2.getTime();
            
             System.out.println("Hello World!="+l);
             }catch(Exception e){
              System.out.println("exception"+e.toString());
             }
            
          }
          }


           

           


           


          3:)得到2個月后的日期:
          import java.util.*;
          import java.text.DateFormat;
          public class test2
          {
             public static void main(String args[]) throws Exception
             {
              String date="2001/11/30";
             
              DateFormat dateFormat =
             DateFormat.getDateInstance(DateFormat.MEDIUM);
              GregorianCalendar grc=new GregorianCalendar();
              grc.setTime(new Date(date));


           

           


           


              grc.add(GregorianCalendar.MONTH,2);
              System.out.println("grc="+dateFormat.format(grc.getTime()));  
             }
          }


           

          15.計算日期間隔
          public int getDays(Date sd,Date ed){
             return (ed.getTime()-sd.getTime())/(3600*24*1000)
          }


           

           


           

          16.日期加減
          SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
          String str="20011230";
          Date dt=sdf.parse(str,new ParsePosition(0));
          Calendar rightNow = Calendar.getInstance();
          rightNow.setTime(dt);
          rightNow.add(Calendar.DATE,2);//你要加減的日期
          Date dt1=rightNow.getTime();
          String reStr=sdf.format(dt1,"",new FieldPosition(0));
          System.out.println(reStr);


           

           


           

          17.時間顯示控制   
          第一種方式:
          <html>
          <head><title>取得系統時間</title></head>
          <body>
          <%java.util.Date date=new java.util.Date();%>
          現在是:<%=date%>
          </body>
          </html>
          運行結果:
          現在是:Tue Jul 31 10:32:52 CST 2001


           

           


           

          第二種方式:
          <%@ page import="java.util.*, java.text.*" %>
          <HTML>
          <HEAD><TITLE>顯示當前時間</TITLE></HEAD>
          <BODY>
          當前時間:
          <%
          Date now = new Date();
          out.println(DateFormat.getTimeInstance().format(now));
          %>
          </BODY>
          </HTML>
          運行結果:
          10:31:42 AM


           

           


           

          第三種方式:
          <%
          java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy年MM月dd日");
          java.util.Date currentTime_1 = new java.util.Date();
          out.print(formatter.format(currentTime_1));
          %>
          運行結果:
          2001年07月31日


           

           


           

          第四種方式:
          <%
          java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy/MM/dd HH/mm/ss");
          java.util.Date currentTime_1 = new java.util.Date();
          out.print(formatter.format(currentTime_1));
          %>
          運行結果:
          2001/07/31 10/32/52
          第三四兩種方式其實是一樣的他可以產生千變萬化的格式。

          //比較兩個時間是否相同

          public class Test {

           /**
            * @param args
            */
           
           private static boolean isSameDate(Date date){
            Calendar calendar=Calendar.getInstance();
            //int todays=calendar.get(Calendar.DAY_OF_YEAR);
          //  calendar.setTime(date);
           // int lastDate=calendar.get(Calendar.DAY_OF_YEAR);
            if(calendar.getTime().after(date)){//判斷當前時間是否為以后的時間
             return true;
            }else{
             return false;
            }
            }
           public static void main(String[] args) throws ParseException {
            // TODO Auto-generated method stub
            
            
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
            sdf.setLenient(false);
            String sdate="2009-08-28";
            Date ddate;
            ddate=sdf.parse(sdate);
            
            
            
            Date da=new Date();
            System.out.println(da);
           
            isSameDate(da);
            System.out.println(isSameDate(ddate));
            
            
            
            
           }

          }

           

        19. posted on 2009-09-07 12:17 大魚 閱讀(594) 評論(0)  編輯  收藏 所屬分類: j2se

          主站蜘蛛池模板: 遵义县| 香河县| 福州市| 江陵县| 普宁市| 蚌埠市| 阿拉尔市| 湄潭县| 曲阳县| 鞍山市| 利辛县| 绥化市| 长治县| 和龙市| 五莲县| 灵山县| 桃源县| 营山县| 宁国市| 探索| 双柏县| 崇左市| 莱西市| 沁水县| 琼结县| 濉溪县| 资阳市| 原平市| 弥勒县| 南开区| 成武县| 文化| 靖安县| 铜川市| 仙居县| 周宁县| 汝州市| 闽清县| 沈丘县| 渑池县| 桓台县|