Java日期处理-本期,同期,上期
程序员文章站
2022-06-05 09:28:20
...
在做项目时候,有时需要给日期的查询条件在后台用java赋初始值,比如现在时间是2015-04-12,日期下拉框需要第一次默认的查询的起止日期为2015-04-01至2015-04-12则可以如下处理:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class TestCalendar1 {
/**
* @param args
*/
public static void main(String[] args) {
getCurrentMonthStartDate("yyyy-MM-dd");
getCurrentDate("yyyy-MM-dd");
}
/**
* 获取当前月一号时间
* @param str
* @return
*/
public static String getCurrentMonthStartDate(String str){
SimpleDateFormat sdf = new SimpleDateFormat(str);
Calendar date = Calendar.getInstance();
date.set(Calendar.DAY_OF_MONTH, 1);
System.out.println("当前月一号时间:"+sdf.format(date.getTime()));
return sdf.format(date.getTime());
}
/**
* 获取当前日期
* @param str
* @return
*/
public static String getCurrentDate(String str){
SimpleDateFormat sdf = new SimpleDateFormat(str);
Calendar date = new GregorianCalendar();
System.out.println("当前日期:"+sdf.format(date.getTime()));
return sdf.format(date.getTime());
}
}
执行后输出结果为:
当前月一号时间:2015-04-01
当前日期:2015-04-12
注意:Calendar.getInstance()和new GregorianCalendar()效果一样,通过查看java源码getInstance()方法是实例化了一个GregorianCalendar
上期时间:
public static String getLastMonthDate(String str){
SimpleDateFormat sdf = new SimpleDateFormat(str);
Calendar date = Calendar.getInstance();
date.add(Calendar.MONTH, -1);
System.out.println("上期日期:"+sdf.format(date.getTime()));
return sdf.format(date.getTime());
}
结果:
上期日期:2015-03-12
同期日期:
public static String getLastYearCurrentDate(String str){
SimpleDateFormat sdf = new SimpleDateFormat(str);
Calendar date = new GregorianCalendar();
date.add(Calendar.YEAR, -1);
System.out.println("同期日期:"+sdf.format(date.getTime()));
return sdf.format(date.getTime());
}
结果:
同期日期:2014-04-12
类似还有很多:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class TestCalendar {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("当前日期:"+getCurrentDate("yyyy-MM-dd"));//当前日期:2015-04-11
System.out.println("同期日期:"+getLastYearCurrentDate("yyyy-MM-dd"));//同期日期:2014-04-11
System.out.println("上期日期:"+getLastMonthDate("yyyy-MM-dd"));//上期日期:2015-03-11
System.out.println("当前月一号日期:"+getCurrentMonthStartDate("yyyy-MM-dd"));//当前月一号日期:2015-04-01
System.out.println("同期月一号日期:"+getLastYearCurrentMonthStartDate("yyyy-MM-dd"));//同期月一号日期:2014-04-01
System.out.println("当前年一月一号:"+getCurrentYearStartDate("yyyy-MM-dd"));//当前年一月一号:2015-01-01
System.out.println("去年一月一号"+geLastYearStartDate("yyyy-MM-dd"));//去年一月一号2014-01-01
}
/**
* 获取当前日期
* @param str
* @return
*/
public static String getCurrentDate(String str){
SimpleDateFormat sdf = new SimpleDateFormat(str);
Calendar date = new GregorianCalendar();
return sdf.format(date.getTime());
}
/**
* 获取去年同一时间
* @param str
* @return
*/
public static String getLastYearCurrentDate(String str){
SimpleDateFormat sdf = new SimpleDateFormat(str);
Calendar date = new GregorianCalendar();
date.add(Calendar.YEAR, -1);
return sdf.format(date.getTime());
}
/**
* 获取上个月同一时间
* @param str
* @return
*/
public static String getLastMonthDate(String str){
SimpleDateFormat sdf = new SimpleDateFormat(str);
//Calendar date = new GregorianCalendar();
Calendar date = Calendar.getInstance();
/*
* Calendar.getInstance()和new GregorianCalendar()效果一样
* Calendar.getInstance()查看其getInstance()方法也是实例化了GregorianCalendar()
*/
date.add(Calendar.MONTH, -1);
return sdf.format(date.getTime());
}
/**
* 获取当前月一号时间
* @param str
* @return
*/
public static String getCurrentMonthStartDate(String str){
SimpleDateFormat sdf = new SimpleDateFormat(str);
Calendar date = Calendar.getInstance();
//date.set(Calendar.DATE, 1);
date.set(Calendar.DAY_OF_MONTH, 1);//DATE和DAY_OF_WEEK效果一样,都是指一个月中的某天
return sdf.format(date.getTime());
}
/**
* 获取去年当前月一号
* @param str
* @return
*/
public static String getLastYearCurrentMonthStartDate(String str){
SimpleDateFormat sdf = new SimpleDateFormat(str);
Calendar date = Calendar.getInstance();
date.add(Calendar.YEAR, -1);
date.set(Calendar.DATE, 1);
return sdf.format(date.getTime());
}
/**
* 获取今年一月一号
* @param str
* @return
*/
public static String getCurrentYearStartDate(String str){
SimpleDateFormat sdf = new SimpleDateFormat(str);
Calendar date = Calendar.getInstance();
date.set(date.get(Calendar.YEAR), 0, 1);
return sdf.format(date.getTime());
}
/**
* 获取去年一月一号
* @param str
* @return
*/
public static String geLastYearStartDate(String str){
SimpleDateFormat sdf = new SimpleDateFormat(str);
Calendar date = Calendar.getInstance();
date.set(date.get(Calendar.YEAR)-1, 0, 1);
return sdf.format(date.getTime());
}
}
结果:
当前日期:2015-04-12
同期日期:2014-04-12
上期日期:2015-03-12
当前月一号日期:2015-04-01
同期月一号日期:2014-04-01
当前年一月一号:2015-01-01
去年一月一号2014-01-01
转载于:https://blog.51cto.com/stormkai/1631463
上一篇: MySQL——Innodb相关统计
下一篇: Vagrant中Nginx配置