当前位置: 代码迷 >> 综合 >> Java基础——获取当前系统时间上一天时间及各月最后一天
  详细解决方案

Java基础——获取当前系统时间上一天时间及各月最后一天

热度:18   发布时间:2023-10-17 05:06:55.0
java中获取当前日期和时间的方法

import java.util.Date;
import java.util.Calendar;

import java.text.SimpleDateFormat;

public class TestDate{
public static void main(String[] args){
Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//可以方便地修改日期格式


String hehe = dateFormat.format( now );
System.out.println(hehe);

Calendar c = Calendar.getInstance();//可以对每个时间域单独修改

c.setTime(now);

now = c.getTime();//例如:2017-05-26


int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);
}
}

获取上一天时间:

String fileTime = request.getParameter("fileTime");
        //日期格式化
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //字符串转日期
        Date fileDate = sdf.parse(fileTime);
        Calendar calendar = Calendar.getInstance();  
        calendar.setTime(fileDate);

//获取fileDate上一天
            calendar.add(Calendar.DAY_OF_MONTH, -1); 

//获取后一天

calendar.add(Calendar.DAY_OF_MONTH, 1);

           fileDate = calendar.getTime();  
            //日期转字符串
            fileTime = sdf.format(fileDate);

获取各月最后一天时间:

        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        for(int i=0;i<12;i++){
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.YEAR,2017);  
            calendar.set(Calendar.MONTH, i);  
            calendar.set(Calendar.DATE, 1);  
            int lastDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);  
            calendar.set(Calendar.DAY_OF_MONTH, lastDay);  
            String lastDayOfMonth = sdf.format(calendar.getTime());
            System.out.println(lastDayOfMonth);
        }

输出结果:

20170131
20170228
20170331
20170430
20170531
20170630
20170731
20170831
20170930
20171031
20171130
20171231

     有时候要把String类型的时间转换为Date类型,通过以下的方式,就可以将你刚得到的时间字符串转换为Date类型了。

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

java.util.Date time=null;
try {
   time= sdf.parse(sdf.format(new Date()));

} catch (ParseException e) {

   e.printStackTrace();
}

注意:月份从0开始到11表示1到12月份,Date跟Calendar获取的时间都是当前服务器所在的计算机的系统时间!