⽐较⽇期⼤⼩Java_java中⽐较两个⽇期的⼤⼩⼯具类
package com.wanggs.utils;
SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
/**
* 获取两个时间之间的天数
* @param maxDate ⼤的⽇期
* @param minDate ⼩的⽇期
* @return
* @throws Exception
*/
public static int getDay(Date maxDate,Date minDate) throws Exception {
int day = 0;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
minDate=sdf.parse(sdf.format(minDate));
maxDate=sdf.parse(sdf.format(maxDate));
Calendar cal = Instance();
cal.setTime(minDate);
long time1 = TimeInMillis();
cal.setTime(maxDate);
long time2 = TimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
if (between_days>0) {
day = Integer.parseInt(String.valueOf(between_days));
}
return day;
}
/**
* 由出⽣⽇期获得年龄
*
* @return
* @throws Exception
*/
public static int getAge(Date birthDay) throws Exception {
Calendar cal = Instance();
if (cal.before(birthDay)) {
throw new IllegalArgumentException("The birthDay is before Now.It's unbelievable!"); }
//获取当前年
int yearNow = (Calendar.YEAR);
//获取当前⽉
int monthNow = (Calendar.MONTH);
//获取当⽇
int dayOfMonthNow = (Calendar.DAY_OF_MONTH);
cal.setTime(birthDay);
//获取出⽣那年
int yearBirth = (Calendar.YEAR);
//获取出⽣⽉
int monthBirth = (Calendar.MONTH);
//获取出⽣⽇
int dayOfMonthBirth = (Calendar.DAY_OF_MONTH);
bigdecimal转换为integer//年纪
int age = yearNow - yearBirth;
//如果现在的⽉份⼩于⽣⽇的⽉份,年龄-1,如果等于出⽣的⽉份,⽇前⼩于⽣⽇⽇期,年龄-1
if (monthNow <= monthBirth) {
if (monthNow == monthBirth) {
if (dayOfMonthNow < dayOfMonthBirth)
age--;
} else {
age--;
}
}
return age;
}
测试
package com.wanggs.utils;
SimpleDateFormat;
import java.util.Date;
import java.util.logging.SimpleFormatter;
/**
* Created by wanggs on 2017/9/6.
*/
public class DateTest {
public static void main(String[] args) throws Exception {
String beginTime=new String("2014-09-15 10:22:22");
String endTime=new String("2014-09-22 11:22:22"); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); Date bt = sdf.parse(beginTime);
Date et = sdf.parse(endTime);
// 获取年龄
int age = Age(bt);
System.out.println(age);
// 获取两个时间的天数
int resultAge = Day(et,bt);
System.out.println(resultAge);
}
}
时间处理⼯具类
package com.wanggs.utils;
DateFormat;
ParseException;
SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Hashtable;
import java.util.Map;
* ⽇期处理⼯具,线程安全
*/
public class DateUtils {
private static Map> thredlocalmap = new Hashtable>();
public static final String yyyyMMddHHmmss = "yyyy-MM-dd HH:mm:ss"; public static final String yyyyMMdd = "yyyy-MM-dd";
public static final String yyyyMM = "yyyy-MM";
public static final String yyyy = "yyyy";
public static final String HHmmss = "HH:mm:ss";
public static final String MM = "MM";
public static final String week = "E";
static {
thredlocalmap.put(yyyyMMddHHmmss, new ThreadLocal()); thredlocalmap.put(yyyyMMdd, new ThreadLocal());
thredlocalmap.put(yyyyMM, new ThreadLocal());
thredlocalmap.put(yyyy, new ThreadLocal());
thredlocalmap.put(HHmmss, new ThreadLocal());
thredlocalmap.put(MM, new ThreadLocal());
thredlocalmap.put(week, new ThreadLocal());
}
/**
* 通过格式获取格式化对象,线程安全
*
* @param datePattern
* @return
*/
public static DateFormat getDateFormat(String datePattern) { ThreadLocal threadlocal = getThreadLocal(datePattern);
DateFormat fmt = ();
if (fmt == null) {
fmt = new SimpleDateFormat(datePattern);
threadlocal.set(fmt);
}
}
private static ThreadLocal getThreadLocal(String datePattern) { ThreadLocal theadlocal = (datePattern);
if(theadlocal == null) {
theadlocal = new ThreadLocal();
thredlocalmap.put(datePattern, theadlocal);
}
return theadlocal;
}
/**
* 将字符串⽇期转换成Date对象
*
* @param dateStr ⽇期字符串
* @param datePattern ⽇期格式
* @return
*/
public static Date parse(String dateStr, String datePattern) {
try {
return getDateFormat(datePattern).parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
/**
* 将Date对象转换成字符串⽇期
*
* @param date ⽇期对象
* @param datePattern ⽇期格式
* @return
*/
public static String format(Date date, String datePattern) { return getDateFormat(datePattern).format(date);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论