/**
* 取得当前日期所在周的第一天
*
* @param date
* @return
*/
public static Date getFirstDayOfWeek(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.SUNDAY);
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_WEEK,
calendar.getFirstDayOfWeek()); // Sunday
return calendar.getTime();
}
/**
* 取得当前日期所在周的最后一天
*
* @param date
* @return
*/
public static Date getLastDayOfWeek(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.SUNDAY);
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_WEEK,
calendar.getFirstDayOfWeek() + 6); // Saturday
return calendar.getTime();
}
/**
* 日期加减天数,并以Date形式返回
* @param value
* @param num
* @return
*/
public static Date addDays(Date date, int num) {
if (date == null) {
return null;
}
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.DATE, num);
return c.getTime();
}
/**
* 日期加减月数,并以Date形式返回
* @param value
* @param num
* @return
*/
public static Date addMonths(Date date, int num) {
if (date == null) {
return null;
}
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.MONTH, num);
return c.getTime();
}
public static void main(String[] args) {
Date dt=new Date();
System.out.println("本周第一天:"+getFirstDayOfWeek(dt)+";"+DateExtendUtils.addDay(getFirstDayOfWeek(dt), 1));
System.out.println("本周最后一天:"+getLastDayOfWeek(dt)+";"+DateExtendUtils.addDay(getLastDayOfWeek(dt), 1));
}
/**
* 增加日期的年份。失败返回null。
*
* @param date
* 日期
* @param yearAmount
* 增加数量。可为负数
* @return 增加年份后的日期字符串
*/
public static String addYear(String date, int yearAmount) {
return addInteger(date, Calendar.YEAR, yearAmount);
}
/**
* 增加日期的年份。失败返回null。
*
* @param date
* 日期
* @param yearAmount
* 增加数量。可为负数
* @return 增加年份后的日期
*/
public static Date addYear(Date date, int yearAmount) {
return addInteger(date, Calendar.YEAR, yearAmount);
}
/**
* 增加日期的月份。失败返回null。
*
* @param date
* 日期
* @param monthAmount
* 增加数量。可为负数
* @return 增加月份后的日期字符串
*/
public static String addMonth(String date, int monthAmount) {
return addInteger(date, Calendar.MONTH, monthAmount);
}
/**
* 增加日期的月份。失败返回null。
*
* @param date
* 日期
* @param monthAmount
* 增加数量。可为负数
* @return 增加月份后的日期
*/
public static Date addMonth(Date date, int monthAmount) {
return addInteger(date, Calendar.MONTH, monthAmount);
}
/**
* 增加日期的天数。失败返回null。
*
* @param date
* 日期字符串
* @param dayAmount
* 增加数量。可为负数
* @return 增加天数后的日期字符串
*/
public static String addDay(String date, int dayAmount) {
return addInteger(date, Calendar.DATE, dayAmount);
}
/**
* 增加日期的天数。失败返回null。
*
* @param date
* 日期
* @param dayAmount
* 增加数量。可为负数
* @return 增加天数后的日期
*/
public static Date addDay(Date date, int dayAmount) {
return addInteger(date, Calendar.DATE, dayAmount);
}
/**
* 增加日期的小时。失败返回null。
*
* @param date
* 日期字符串
* @param hourAmount
* 增加数量。可为负数
* @return 增加小时后的日期字符串
*/
public static String addHour(String date, int hourAmount) {
return addInteger(date, Calendar.HOUR_OF_DAY, hourAmount);
}
/**
* 增加日期的小时。失败返回null。
*
* @param date
* 日期
* @param hourAmount
* 增加数量。可为负数
* @return 增加小时后的日期
*/
public static Date addHour(Date date, int hourAmount) {
return addInteger(date, Calendar.HOUR_OF_DAY, hourAmount);
}
/**
* 增加日期的分钟。失败返回null。
*
* @param date
* 日期字符串
* @param minuteAmount
* 增加数量。可为负数
* @return 增加分钟后的日期字符串
*/
public static String addMinute(String date, int minuteAmount) {
return addInteger(date, Calendar.MINUTE, minuteAmount);
}
/**
* 增加日期的分钟。失败返回null。
*
* @param date
* 日期
* @param dayAmount
* 增加数量。可为负数
* @return 增加分钟后的日期
*/
public static Date addMinute(Date date, int minuteAmount) {
return addInteger(date, Calendar.MINUTE, minuteAmount);
}
/**
* 增加日期的秒钟。失败返回null。
*
* @param date
* 日期字符串
* @param dayAmount
* 增加数量。可为负数
* @return 增加秒钟后的日期字符串
*/
public static String addSecond(String date, int secondAmount) {
return addInteger(date, Calendar.SECOND, secondAmount);
}
/**
* 增加日期的秒钟。失败返回null。
*
* @param date
* 日期
* @param dayAmount
* 增加数量。可为负数
* @return 增加秒钟后的日期
*/
public static Date addSecond(Date date, int secondAmount) {
return addInteger(date, Calendar.SECOND, secondAmount);
}
/**
* "yyyy-MM-dd HH:mm:ss"
*/
public static String DATE_PATTERN_01="yyyy-MM-dd HH:mm:ss";
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.lang.StringUtils;
import com.bill99.mbp.common.enums.CommonConstants;
/**
* 日期时间处理工具类
*/
public class TestDateUtils {
/**
* 线程隔离的THREADLOCAL_SDF
* (ThreadLocal用于保存某个线程共享变量:
* 对于同一个static ThreadLocal,不同线程只能从中get,set,remove自己的变量,而不会影响其他线程的变量)
*/
private static final ThreadLocal<SimpleDateFormat> THREADLOCAL_SDF= new ThreadLocal<SimpleDateFormat>() {
@Override
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat(CommonConstants.DATE_PATTERN_01);
}
};
/**
* 将Date格式按照默认的pattern形式转换为字符串格式
* @param date
* @return
*/
public static String formatFun(Date date) {
return THREADLOCAL_SDF.get().format(date);
}
/**
* 将Date格式按照pattern形式转换为字符串格式
* @param date
* @param pattern
* @return
*/
public static String formatFun(Date date, String pattern) {
if(null == date || StringUtils.isBlank(pattern)){
return "";
}
SimpleDateFormat sdf = THREADLOCAL_SDF.get();
try {
sdf.applyPattern(pattern);
return sdf.format(date);
} finally {
sdf.applyPattern(CommonConstants.DATE_PATTERN_01);
}
}
/**
* 时间戳转换成日期格式字符串
* @param seconds 精确到秒的字符串
* @param formatStr
* @return
*/
public static String timeStamp2DateFun(Long date) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (date == null || date.equals("null")) {
return "";
}
return format.format(date);
}
/**
* 将时间转换为时间戳
*/
public static Long date2StampFun(String s) throws ParseException{
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = simpleDateFormat.parse(s);
Long ts = date.getTime();
return ts;
}
public static void main(String[] args) {
Date now=new Date();
String nowStr=format(now);
System.out.println(nowStr);
}
}
public class YearUtils {
/**
*判断指定年份是平年还是闰年
*true-闰年;false-平年;
*闰年的认定条件是符合下面二者之一:
*(1)年份能被4整除,但不能被100整除;
*(2)能被400整除。
**/
public static boolean checkYear(int year){
if( ( year%4==0 && year%100!=0 ) || year%400==0 ){
//闰年
return true;
}else{
//平年
return false;
}
}
/* public static void main(String[] args) {
boolean bool=checkYear(2004);
System.out.println(bool);
boolean bool2=checkYear(2016);
System.out.println(bool2);
boolean bool3=checkYear(2019);
System.out.println(bool3);
}*/
}
分享到:
相关推荐
java日期时间工具类超级全。其中包含:获得当前日期 yyyy-MM-dd HH:mm:ss;获取系统当前时间戳;获取当前日期 yy-MM-dd;得到两个时间差 格式yyyy-MM-dd HH:mm:ss;转化long值的日期为yyyy-MM-dd HH:mm:ss.SSS格式的...
java日期时间工具类,里面主要包括了日期与字符串之间的相互转换,以及输出指定的日期格式
日期时间工具类,样式美化,数据直接友好弹窗及转换处理
java 日期时间工具类 日期时间的加减 身份证号上的日期是否小于2岁等
时间类型方面很好用的工具类,包括时间类型的转化与计算等
NULL 博文链接:https://liu-jason.iteye.com/blog/1130442
时间日期转换工具类!各种格式各种转换和一些计算 交易日的工具
这是一个比较全面的处理日期时间的工具类,利用该工具类可以得到你想要的日期时间。里面代码简洁,方法已经封装好,只需要调用即可。自己可以将其打成jar包来用
Java 日期比较工具类 各种日期操作及计算( 获取两个日期 间隔天数 间隔月数 格式化日期 )
java写的,操作日期时间的工具类,封装的比较完善,可以获取最小时间, 获取最大时间,获取今天最小时间,获取今天最大时间,获取明天的最小时间,获取明天的最大时间,获取昨天的最小时间,获取昨天的最大时间,...
Java日期工具类 1、日期的各种格式化 2、获取当前年度 3、获取当前月份 4、获取当前天号数 5、获取当前时间往前推一个月的时间 6、获取上个月("MMM yyyy") 7、获取上个月("yyyymm") 8、获取上个月("yyyy-mm") 9、...
各种日期格式,时间戳,时间计算的相互转换。直接引入工程中,可使用
最全的java开发时间工具类(日期处理工具类)。
封装好的时间工具类, 包括时间格式转换,获取今天周几,一月几天。
java 日期转换工具
java时间日期格式化工具类,最近新整理的目前各种会用到的关于日期的格式化
日期工具类
日期操作工具类 /** * 将日期对象按照换为时间字符串 * 默认格式为"yyyy-MM-dd HH:mm:ss" * @param sourceTime * @return * @throws ParseException */ public static String formatDate(Date ...
学会日期的操作 日期的工具类UtilDate 日期计算 日期比较 润年判断 日期获取和转化 日期的判断
日期处理工具类,项目中的工具类,测试无bug,请放心使用