import android.util.Log;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateHelper {
public static Date getNowDate() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(currentTime);
Date currentTime_2 = null;
try {
currentTime_2 = formatter.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
return currentTime_2;
}
public Date getFirstDayOfMonth(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, 1);
Date first = dateTodateNoHour(cal.getTime());
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(first));
return first;
}
public Date getLastDayOfMonth(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.roll(Calendar.DAY_OF_MONTH, -1);
Date last = dateTodateNoHour(cal.getTime());
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(last));
return last;
}
/**
* 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
*/
public String getStringDate(Long date) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(date);
return dateString;
}
public String getDate(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(date);
return dateString;
}
public String getLastDayNumOfMonth(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.roll(Calendar.DAY_OF_MONTH, -1);
Date last = dateTodateNoHour(cal.getTime());
String dayNum = new SimpleDateFormat("dd").format(last);
System.out.println("dayNum" + dayNum);
return dayNum;
}
public String getDayNumOfMonth(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
Date last = dateTodateNoHour(cal.getTime());
String dayNum = new SimpleDateFormat("dd").format(last);
System.out.println("dayNum" + dayNum);
return dayNum;
}
public String getCurrentYearNum(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, 1);
Date last = dateTodateNoHour(cal.getTime());
String dayNum = new SimpleDateFormat("yyyy").format(last);
System.out.println("dayNum" + dayNum);
return dayNum;
}
public Date stringToDate(String str) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = null;
try {
date = format.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
public Date stringToDateNoHour(String str) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = format.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
public Date stringToDateNoMonth(String str) {
DateFormat format = new SimpleDateFormat("yyyy");
Date date = null;
try {
date = format.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
public String dateToStringNoHour(Date date) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String str = null;
try {
str = format.format(date);
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
public String dateToStringNoMonth(Date date) {
DateFormat format = new SimpleDateFormat("yyyy");
String str = null;
try {
str = format.format(date);
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
public int dateToInt_dd(Date date) {
int date_dd = 0;
DateFormat format = new SimpleDateFormat("dd");
String str = null;
try {
str = format.format(date);
} catch (Exception e) {
e.printStackTrace();
}
if (str != null) {
date_dd = Integer.valueOf(str);
}
return date_dd;
}
public Date dateTodate_dd(Date date) {
if (date == null) {
return null;
}
DateFormat format = new SimpleDateFormat("dd");
Date dateNoHour = null;
try {
dateNoHour = format.parse(format.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
return dateNoHour;
}
public Date dateTodateNoHour(Date date) {
if (date == null) {
return null;
}
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date dateNoHour = null;
try {
dateNoHour = format.parse(format.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
return dateNoHour;
}
public String dateToStringDate(Date date) {
DateFormat format = new SimpleDateFormat("yyyyMMdd");
String str = null;
try {
str = format.format(date);
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
public String dateToString(Date date) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String str = null;
try {
str = format.format(date);
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
public String dateToString2(Date date) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = null;
try {
str = format.format(date);
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
public long getHours(String statTime, String endTime) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
long diff = 0;
long hours = 0;
try {
Date d1 = df.parse(endTime);
Date d2 = df.parse(statTime);
diff = d1.getTime() - d2.getTime();
long days = diff / (1000 * 60 * 60 * 24);
hours = (diff - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
if (days > 0) {
hours = (diff - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60) + (days * 24);
}
Log.d("fangshu", diff + "+++diff==" + days + "++hours+" + hours);
} catch (Exception e) {
Log.d("fangshu", e.getMessage());
}
return hours;
}
/**
* function:不是绝对值,根据两个日期自动转化为xx秒
* parameters:
* creator:XiongXiaolu
* time:2016/6/2 9:57
*/
public long getIntervalSeconds(Date date1, Date date2) {
long seconds = 0;
if (date1 != null && date2 != null) {
seconds = (int) ((date1.getTime() - date2.getTime()) / 1000);
}
return seconds;
}
/**
* function:取绝对值,根据两个日期自动转化为xx秒,xx分钟,xx小时,xx天
* parameters:
* creator:XiongXiaolu
* time:2016/6/2 9:57
*/
public String getIntervalTime(Date date1, Date date2) {
long time = 0;
String strUnit = "秒";
if (date1 != null && date2 != null) {
long seconds = Math.abs(getIntervalSeconds(date1, date2));
if (seconds > 60 * 60 * 24 * 365) {
time = (int) (seconds / (60 * 60 * 24 * 365));
strUnit = "年";
} else {
if (seconds > 60 * 60 * 24) {
time = (int) (seconds / (60 * 60 * 24));
strUnit = "天";
} else {
time = 1;
strUnit = "天";
}
}
}
return time + strUnit;
}
public String getIntervalTime2(Date date1, Date date2) {
long time = 0;
String strUnit = "秒";
if (date1 != null && date2 != null) {
long seconds = Math.abs(getIntervalSeconds(date1, date2));
if (seconds > 60 * 60 * 24 * 365) {
time = (int) (seconds / (60 * 60 * 24 * 365));
strUnit = "年";
} else {
if (seconds > 60 * 60 * 24) {
time = (int) (seconds / (60 * 60 * 24));
strUnit = "天";
} else {
if (seconds > 60 * 60) {
time = (int) (seconds / (60 * 60));
strUnit = "小时";
} else {
if (seconds > 60) {
time = (int) (seconds / (60));
strUnit = "分钟";
} else {
time = (int) (seconds);
strUnit = "秒";
}
}
}
}
}
return time + strUnit;
}
public int getAge(Date dateOfBirth) {
int age = 0;
Calendar born = Calendar.getInstance();
Calendar now = Calendar.getInstance();
if (dateOfBirth != null) {
now.setTime(new Date());
born.setTime(dateOfBirth);
age = now.get(Calendar.YEAR) - born.get(Calendar.YEAR);
}
return age;
}
/**
* 获取前n天日期、后n天日期
*
* @param distanceDay 前几天 如获取前7天日期则传-7即可;如果后7天则传7
* @return
*/
public static String getOldDate(int distanceDay) {
SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
Date beginDate = new Date();
Calendar date = Calendar.getInstance();
date.setTime(beginDate);
date.set(Calendar.DATE, date.get(Calendar.DATE) + distanceDay);
Date endDate = null;
try {
endDate = dft.parse(dft.format(date.getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
return dft.format(endDate);
}
Date工具类
最新推荐文章于 2023-12-06 16:06:34 发布