java 时间相关操作

 1、时间转格式

//控制时间格式,HH表明是24小时制,hh12小时制

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");

Date date=new Date()

//Date转String

String begin = sdf.format(date);

//StringDate

Date abc =sdf.parse(begin);

2、修改时间:

Calendar cal = Calendar.getInstance();

cal.setTime(new Date());//获取当前时间;

cal.add(Calendar.YEAR, +2);//年份加2

cal.add(Calendar.MONTH,+1);//1

cal.add(Calendar.DAY_OF_MONTH, +7);

cal.add(Calendar.HOUR, +23);

cal.add(Calendar.MINUTE, +59);

cal.add(Calendar.SECOND, +59);

或者做减法

cal.add(Calendar.SECOND, -59);

Date d=cal.getTime();

或者直接指定

Calendar c2 = Calendar.getInstance();

c2.set(Calendar.HOUR_OF_DAY, 0);

c2.set(Calendar.MINUTE, 0);

c2.set(Calendar.SECOND, 0);

System.out.println(c2.getTime().toLocaleString());


3、求日期差:   

SimpleDateFormat   df   =   new   SimpleDateFormat("yyyy-MM-dd   HH:mm:ss");   

Date begin = null;//

Date   end = null;//如果与当前时间比较:cal.getTime()

try {

    begin = df.parse("2004-01-02   11:30:24");

    end   =   df.parse("2005-01-02   11:31:25");   

catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}   

  long   between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒   

  int   day=(int) (between/(24*3600));//差的总天数  

  int   hour=(int) (between%(24*3600)/3600); //剩余小时

  int   minute=(int) (between%3600/60);   //剩余分

4、set方法默认设置 23:59:59

public void setEndtimeTw0(Date endtime) { //endtime为页面传入的值,没有输入时分秒。

Calendar cal = Calendar.getInstance();

    cal.setTime(endtime);

    cal.add(Calendar.HOUR, +23);

    cal.add(Calendar.MINUTE, +59);

    cal.add(Calendar.SECOND, +59);

    this.endtime = cal.getTime();

}


你可能感兴趣的:(java,时间相关操作)