java获取当前日期的前一天日期与字符串日期之间的转换

来源:互联网 发布:网络大电影用户分析 编辑:程序博客网 时间:2024/05/16 16:11
这几天一直在处理Java的日期问题,通常需要按要求生成日期的话,通常会用到util包中的Calendar类,再用Calendar的getTime()方法生成对应的Date,最后用SimpleDateFormat输出。

 

1.获取当期日期、年份、月份

import java.util.Calendar;


public class Main {
  public static void main(String[] args) {
    Calendar now = Calendar.getInstance();
    System.out.println("Current Year is : " + now.get(Calendar.YEAR));
    // month start from 0 to 11
    System.out.println("Current Month is : " + (now.get(Calendar.MONTH) + 1));
    System.out.println("Current Date is : " + now.get(Calendar.DATE));
  }
}

 

2.获取前一天、前一个月的日期

Calendar calendar = Calendar.getInstance();//此时打印它获取的是系统当前时间
        calendar.add(Calendar.DATE, -1);    //
得到前一天

String  yestedayDate

= new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());

例:

public static Date getNextDay(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.DAY_OF_MONTH, -1);date = calendar.getTime();return date;}


再例: 精确到时分秒

private Timestamp getPreviDay() throws ParseException{
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.add(Calendar.DAY_OF_MONTH, -1);
        String date = new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
        
        Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").parse(date+" 23:59:59.000");
        
        Timestamp ta = new Timestamp(d.getTime());
        return ta;
    }


        calendar.add(Calendar.MONTH, -1);    //得到前一个月
        int year = calendar.get(Calendar.YEAR);


       int month = calendar.get(Calendar.MONTH)+1; //
输出前一月的时候要记得加1

 

3.字符串转为日期格式

String date ="2010-02-01 23:59:59";

SimpleDateFormat sf =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

try {

Date d = sf.parse(date);

System.out.println(sf.format(d));

}catch (ParseException e) {

e.printStackTrace();

}

0 0
原创粉丝点击