JAVA中的日期時間操作

字號:

經??匆妀sp版里有人問時間操作的問題,這些問題一般包括:取當前時間,把一個指定的字符串時間轉化成時間類型,求兩個時間之間的天數,求一段時間以前的時間,求一段時間以后的時間,在這里就把這些問題匯總一下。
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.text.*,java.util.*"%>
    <%
    // 字符串轉化成時間類型(字符串可以是任意類型,只要和SimpleDateFormat中的格式一致即可)
    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");
    out.println(d);
    out.println("
    ");
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String mDateTime1=formatter.format(d);
    out.println(mDateTime1);
    out.println("
    ");
    out.println(d.getTime());
    out.println("
    ");
    //當前時間
     Calendar cal = Calendar.getInstance();
     SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     String mDateTime=formatter.format(cal.getTime());
     out.println(mDateTime);
     out.println("
    ");
    //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);
     out.println(mDate);
     out.println("
    ");
    //明天日期
     myDate=new java.util.Date();
     myTime=(myDate.getTime()/1000)+60*60*24;
     myDate.setTime(myTime*1000);
     mDate=formatter.format(myDate);
     out.println(mDate);
     out.println("
    ");
    //兩個時間之間的天數
     SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
     java.util.Date date= myFormatter.parse("2003-05-1");
     java.util.Date mydate= myFormatter.parse("1899-12-30");
     long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
     out.println(day);
     out.println("
    ");
    //加半小時
     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
     java.util.Date date1 = format.parse("2002-02-28 23:16:00");
     long Time=(date1.getTime()/1000)+60*30;
     date1.setTime(Time*1000);
     String mydate1=formatter.format(date1);
     out.println(mydate1);
     out.println("
    ");
    //年月周求日期
     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);
     out.println(mydate2);
     out.println("
    ");
    //求是星期幾
     mydate= myFormatter.parse("2001-1-1");
     SimpleDateFormat formatter4 = new SimpleDateFormat("E");
     String mydate3=formatter4.format(mydate);
     out.println(mydate3);
     out.println("
    ");
    %>