Java date常用方法总结
来源:互联网 发布:淘宝wifi营销系统 编辑:程序博客网 时间:2024/05/21 00:16
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 日期工具类:用于查询,统计,日历展现等应用中的时间处理
* @author lancelot
*
*/
public class DateUtil {
private static Calendar setMinTime(Calendar calendar) {
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar;
}
private static Calendar setMaxTime(Calendar calendar) {
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
return calendar;
}
/**
* 把时间设为最小,"00:00:00"
* @param date - date
* @return a new instance of date
*/
public static Date setMinTime(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return DateUtil.setMinTime(calendar).getTime();
}
/**
* 把时间设为最大,"23:59:59"
* @param date - date
* @return a new instance of date
*/
public static Date setMaxTime(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return DateUtil.setMaxTime(calendar).getTime();
}
//得到中午时间yyyy/MM/dd 12:00:00
public static Date setMidTime(Date date){
String date_str = new SimpleDateFormat("yyyy/MM/dd").format(date)+ " 12:00:00";
return StringTool.getStringDate(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"),date_str);
}
/**
* 得到日期所在月的首日
* @param date 日期
* @return 月的首日
*/
public static Date getThisMonthFirstDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DATE, 1);
return DateUtil.setMinTime(calendar).getTime();
}
/**
* 得到日期所在月的末日
* @param date 日期
* @return 月的末日
*/
public static Date getThisMonthLastDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return DateUtil.setMaxTime(calendar).getTime();
}
/**
* 得到上一个月的首日
* @param date
* @return
*/
public static Date getPreMonthFirstDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, -1);
return DateUtil.getThisMonthFirstDate(calendar.getTime());
}
/**
* 获得下个月的首日
* @param date
* @return
*/
public static Date getNextMonthFirstDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, 1);
return DateUtil.getThisMonthFirstDate(calendar.getTime());
}
/**
* 得到日期所在周的首日
* @param date 日期
* @return 一周的首日
*/
public static Date getThisWeekFirstDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_WEEK, calendar.getActualMinimum(Calendar.DAY_OF_WEEK));
return DateUtil.setMinTime(calendar).getTime();
}
/**
* 得到日期所在周的首日
* @param date
* @param firstDayIsSunday
* @return
*/
public static Date getThisWeekFirstDate(Date date, boolean firstDayIsSunday) {
if(firstDayIsSunday) {
return getThisWeekFirstDate(date);
} else {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
if(calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
calendar.add(Calendar.DATE, -6);
} else {
calendar.set(Calendar.DAY_OF_WEEK, calendar.getActualMinimum(Calendar.DAY_OF_WEEK));
calendar.add(Calendar.DATE, 1);
}
return DateUtil.setMinTime(calendar).getTime();
}
}
/**
* 得到日期所在周的末日
* @param date 日期
* @return 一周的末日
*/
public static Date getThisWeekLastDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_WEEK, calendar.getActualMaximum(Calendar.DAY_OF_WEEK));
return DateUtil.setMaxTime(calendar).getTime();
}
/**
* 获得本周的最后一天
* @param date
* @param firstDayIsSunday
* @return
*/
public static Date getThisWeekLastDate(Date date, boolean firstDayIsSunday) {
if(firstDayIsSunday) {
return getThisWeekLastDate(date);
} else {
Date temp = getThisWeekFirstDate(date, firstDayIsSunday);
Calendar calendar = Calendar.getInstance();
calendar.setTime(temp);
calendar.add(Calendar.DATE, 6);
return DateUtil.setMaxTime(calendar).getTime();
}
}
/**
* 获得上一周的第一天
* @param date
* @return
*/
public static Date getPreWeekFirstDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.WEEK_OF_YEAR, -1);
return DateUtil.getThisWeekFirstDate(calendar.getTime());
}
/**
* 获得上一周的第一天
* @param date
* @param firstDayIsSunday
* @return
*/
public static Date getPreWeekFirstDate(Date date, boolean firstDayIsSunday) {
if(firstDayIsSunday) {
return getPreWeekFirstDate(date);
} else {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.WEEK_OF_YEAR, -1);
return DateUtil.getThisWeekFirstDate(calendar.getTime(), firstDayIsSunday);
}
}
/**
* 获得下一周的第一天
* @param date
* @return
*/
public static Date getNextWeekFirstDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.WEEK_OF_YEAR, 1);
return DateUtil.getThisWeekFirstDate(calendar.getTime());
}
/**
* 获得下一周的第一天
* @param date
* @param firstDayIsSunday
* @return
*/
public static Date getNextWeekFirstDate(Date date, boolean firstDayIsSunday) {
if(firstDayIsSunday) {
return getNextWeekFirstDate(date);
} else {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.WEEK_OF_YEAR, 1);
return DateUtil.getThisWeekFirstDate(calendar.getTime(), firstDayIsSunday);
}
}
/**
* 得到一个月有几个星期,星期日为一星期的首日,只要一个星期中有一天在这个月就算一个星期
* @param date 日期
* @return 一个月中的星期数
*/
public static int getWeekCountPerMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.setFirstDayOfWeek(Calendar.SUNDAY);
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return calendar.get(Calendar.WEEK_OF_MONTH);
}
/**
* 得到一月的第一天是周几,周日为1,周一为2,以此类推
* @param date 日期
* @return
*/
public static int getMonthFirstDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, 1);
return calendar.get(Calendar.DAY_OF_WEEK);
}
/**
* 得到一个月有几天
* @param date 日期
* @return
*/
public static int getDayCountPerMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.setFirstDayOfWeek(Calendar.SUNDAY);
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return calendar.get(Calendar.DAY_OF_MONTH);
}
/**
* 获得去年该月的首日
* @param date
* @return
*/
public static Date getPreYearMonthFirstDate( Date date ){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add( Calendar.YEAR , -1) ;
return DateUtil.getThisMonthFirstDate( calendar.getTime() ) ;
}
/**
* 获得去年该月的未日
* @param date
* @return
*/
public static Date getPreYearMonthLastDate( Date date ){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add( Calendar.YEAR , -1) ;
return DateUtil.getThisMonthLastDate( calendar.getTime() ) ;
}
/**
* 获得去年该日
* @param date
* @return
*/
public static Date getPreYearDate( Date date ){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add( Calendar.YEAR , -1) ;
return calendar.getTime();
}
/**
* 获得该年的第一天
* @param date
* @return
*/
public static Date getFirstDayOfYear( Date date ){
Calendar calendar = Calendar.getInstance() ;
calendar.setTime( date ) ;
calendar.set( Calendar.DAY_OF_YEAR , 1 ) ;
return DateUtil.setMinTime( calendar.getTime() ) ;
}
/**
* 获得去年的首日
* @param date
* @return
*/
public static Date getPreYearFirstDayOfYear( Date date ){
Calendar calendar = Calendar.getInstance() ;
calendar.setTime( date ) ;
calendar.add( Calendar.YEAR , -1) ;
return DateUtil.getFirstDayOfYear( calendar.getTime() ) ;
}
}
import java.util.Calendar;
import java.util.Date;
/**
* 日期工具类:用于查询,统计,日历展现等应用中的时间处理
* @author lancelot
*
*/
public class DateUtil {
private static Calendar setMinTime(Calendar calendar) {
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar;
}
private static Calendar setMaxTime(Calendar calendar) {
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
return calendar;
}
/**
* 把时间设为最小,"00:00:00"
* @param date - date
* @return a new instance of date
*/
public static Date setMinTime(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return DateUtil.setMinTime(calendar).getTime();
}
/**
* 把时间设为最大,"23:59:59"
* @param date - date
* @return a new instance of date
*/
public static Date setMaxTime(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return DateUtil.setMaxTime(calendar).getTime();
}
//得到中午时间yyyy/MM/dd 12:00:00
public static Date setMidTime(Date date){
String date_str = new SimpleDateFormat("yyyy/MM/dd").format(date)+ " 12:00:00";
return StringTool.getStringDate(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"),date_str);
}
/**
* 得到日期所在月的首日
* @param date 日期
* @return 月的首日
*/
public static Date getThisMonthFirstDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DATE, 1);
return DateUtil.setMinTime(calendar).getTime();
}
/**
* 得到日期所在月的末日
* @param date 日期
* @return 月的末日
*/
public static Date getThisMonthLastDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return DateUtil.setMaxTime(calendar).getTime();
}
/**
* 得到上一个月的首日
* @param date
* @return
*/
public static Date getPreMonthFirstDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, -1);
return DateUtil.getThisMonthFirstDate(calendar.getTime());
}
/**
* 获得下个月的首日
* @param date
* @return
*/
public static Date getNextMonthFirstDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, 1);
return DateUtil.getThisMonthFirstDate(calendar.getTime());
}
/**
* 得到日期所在周的首日
* @param date 日期
* @return 一周的首日
*/
public static Date getThisWeekFirstDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_WEEK, calendar.getActualMinimum(Calendar.DAY_OF_WEEK));
return DateUtil.setMinTime(calendar).getTime();
}
/**
* 得到日期所在周的首日
* @param date
* @param firstDayIsSunday
* @return
*/
public static Date getThisWeekFirstDate(Date date, boolean firstDayIsSunday) {
if(firstDayIsSunday) {
return getThisWeekFirstDate(date);
} else {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
if(calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
calendar.add(Calendar.DATE, -6);
} else {
calendar.set(Calendar.DAY_OF_WEEK, calendar.getActualMinimum(Calendar.DAY_OF_WEEK));
calendar.add(Calendar.DATE, 1);
}
return DateUtil.setMinTime(calendar).getTime();
}
}
/**
* 得到日期所在周的末日
* @param date 日期
* @return 一周的末日
*/
public static Date getThisWeekLastDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_WEEK, calendar.getActualMaximum(Calendar.DAY_OF_WEEK));
return DateUtil.setMaxTime(calendar).getTime();
}
/**
* 获得本周的最后一天
* @param date
* @param firstDayIsSunday
* @return
*/
public static Date getThisWeekLastDate(Date date, boolean firstDayIsSunday) {
if(firstDayIsSunday) {
return getThisWeekLastDate(date);
} else {
Date temp = getThisWeekFirstDate(date, firstDayIsSunday);
Calendar calendar = Calendar.getInstance();
calendar.setTime(temp);
calendar.add(Calendar.DATE, 6);
return DateUtil.setMaxTime(calendar).getTime();
}
}
/**
* 获得上一周的第一天
* @param date
* @return
*/
public static Date getPreWeekFirstDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.WEEK_OF_YEAR, -1);
return DateUtil.getThisWeekFirstDate(calendar.getTime());
}
/**
* 获得上一周的第一天
* @param date
* @param firstDayIsSunday
* @return
*/
public static Date getPreWeekFirstDate(Date date, boolean firstDayIsSunday) {
if(firstDayIsSunday) {
return getPreWeekFirstDate(date);
} else {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.WEEK_OF_YEAR, -1);
return DateUtil.getThisWeekFirstDate(calendar.getTime(), firstDayIsSunday);
}
}
/**
* 获得下一周的第一天
* @param date
* @return
*/
public static Date getNextWeekFirstDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.WEEK_OF_YEAR, 1);
return DateUtil.getThisWeekFirstDate(calendar.getTime());
}
/**
* 获得下一周的第一天
* @param date
* @param firstDayIsSunday
* @return
*/
public static Date getNextWeekFirstDate(Date date, boolean firstDayIsSunday) {
if(firstDayIsSunday) {
return getNextWeekFirstDate(date);
} else {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.WEEK_OF_YEAR, 1);
return DateUtil.getThisWeekFirstDate(calendar.getTime(), firstDayIsSunday);
}
}
/**
* 得到一个月有几个星期,星期日为一星期的首日,只要一个星期中有一天在这个月就算一个星期
* @param date 日期
* @return 一个月中的星期数
*/
public static int getWeekCountPerMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.setFirstDayOfWeek(Calendar.SUNDAY);
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return calendar.get(Calendar.WEEK_OF_MONTH);
}
/**
* 得到一月的第一天是周几,周日为1,周一为2,以此类推
* @param date 日期
* @return
*/
public static int getMonthFirstDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, 1);
return calendar.get(Calendar.DAY_OF_WEEK);
}
/**
* 得到一个月有几天
* @param date 日期
* @return
*/
public static int getDayCountPerMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.setFirstDayOfWeek(Calendar.SUNDAY);
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return calendar.get(Calendar.DAY_OF_MONTH);
}
/**
* 获得去年该月的首日
* @param date
* @return
*/
public static Date getPreYearMonthFirstDate( Date date ){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add( Calendar.YEAR , -1) ;
return DateUtil.getThisMonthFirstDate( calendar.getTime() ) ;
}
/**
* 获得去年该月的未日
* @param date
* @return
*/
public static Date getPreYearMonthLastDate( Date date ){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add( Calendar.YEAR , -1) ;
return DateUtil.getThisMonthLastDate( calendar.getTime() ) ;
}
/**
* 获得去年该日
* @param date
* @return
*/
public static Date getPreYearDate( Date date ){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add( Calendar.YEAR , -1) ;
return calendar.getTime();
}
/**
* 获得该年的第一天
* @param date
* @return
*/
public static Date getFirstDayOfYear( Date date ){
Calendar calendar = Calendar.getInstance() ;
calendar.setTime( date ) ;
calendar.set( Calendar.DAY_OF_YEAR , 1 ) ;
return DateUtil.setMinTime( calendar.getTime() ) ;
}
/**
* 获得去年的首日
* @param date
* @return
*/
public static Date getPreYearFirstDayOfYear( Date date ){
Calendar calendar = Calendar.getInstance() ;
calendar.setTime( date ) ;
calendar.add( Calendar.YEAR , -1) ;
return DateUtil.getFirstDayOfYear( calendar.getTime() ) ;
}
}
0 0
- Java date常用方法总结
- 常用Java Date方法
- 常用java date 方法集合
- 常用java date 方法集合
- 常用java date 方法集合
- 常用java date 方法集合
- JAVA 之 Date常用方法
- 常用java date 方法集合
- java常用的Date方法
- String类型/Date类型常用方法总结
- 常用Java Date 方法集合[收藏]
- JAVA中date()方法常用集合
- java date时间 辅助常用方法
- java,calander,date时间常用方法
- Java常用方法总结
- java常用方法总结
- java常用方法总结
- Java常用方法总结
- Coordinatlayout学习
- 字符、字节的概念及其区别
- Linux文件属性知识
- 同时开多个独立窗口Visio 2003/2007版本的软件
- 【问答】不良资产产生的原因是什么
- Java date常用方法总结
- CC=2;RC=2495;AMQ8568: 找不到本机 JNI 库“'mqjbnd'”
- 冗余表如何保证数据的一致性
- 浅谈String
- easyUI自动填充复选框
- 学习node.js好的博客
- mac读取ntfs移动硬盘
- 代码笔记 | 图灵聊天机器人API调用
- lumbda表达式的几个例子(lumbda对集合遍历、过滤、转换、合并、创建、最大、最小、平均、总和值、并行流、将数组转换成流)