依賴:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
工具類:
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* Class <code>DateUtils</code> is ...
*
* @author wch3116
* @version 0.1, Aug 15, 2008
*/
public final class DateUtils {
/**
* 字段.
*/
public static final int FIELD_YEAR = 1;
/**
* 一天的毫秒數(shù).
*/
public static final long ONEDAYTIMES = 1000L * 60 * 60 * 24;
private DateUtils() {
}
public static boolean compare(Date arg0, Date arg1) {
if (arg0 == null && arg1 == null) {
return true;
} else if (arg0 != null && arg1 != null) {
return arg0.getTime() == arg1.getTime();
} else {
return false;
}
}
public static boolean isToday(Date date) {
return org.apache.commons.lang3.time.DateUtils.isSameDay(date, new Date());
}
public static boolean afterNow(Date date) {
return date.getTime() > System.currentTimeMillis();
}
public static boolean beforeNow(Date date) {
return date.getTime() < System.currentTimeMillis();
}
private static void cutTime(Calendar cal) {
cal.set(Calendar.HOUR_OF_DAY, cal.getActualMinimum(Calendar.HOUR_OF_DAY));
cal.set(Calendar.MINUTE, cal.getActualMinimum(Calendar.MINUTE));
cal.set(Calendar.SECOND, cal.getActualMinimum(Calendar.SECOND));
cal.set(Calendar.MILLISECOND, cal.getActualMinimum(Calendar.MILLISECOND));
}
public static Date cutTime(Date date) {
return dayStart(date);
}
private static void fillTime(Calendar cal) {
cal.set(Calendar.HOUR_OF_DAY, cal.getActualMaximum(Calendar.HOUR_OF_DAY));
cal.set(Calendar.MINUTE, cal.getActualMaximum(Calendar.MINUTE));
cal.set(Calendar.SECOND, cal.getActualMaximum(Calendar.SECOND));
cal.set(Calendar.MILLISECOND, cal.getActualMaximum(Calendar.MILLISECOND));
}
public static Date fillTime(Date date) {
return dayEnd(date);
}
public static Date getWeekBeginDate(Date date) {
if (date == null) {
date = new Date();
}
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(date);
cal.set(Calendar.DAY_OF_WEEK, 1);
cutTime(cal);
return cal.getTime();
}
public static Date getWeekEndDate(Date date) {
if (date == null) {
date = new Date();
}
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(date);
cal.set(Calendar.DAY_OF_WEEK, 7);
fillTime(cal);
return cal.getTime();
}
public static Date getMonthBeginDate(Date date) {
if (date == null) {
date = new Date();
}
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, 1);
cutTime(cal);
return cal.getTime();
}
public static Date getMonthEndDate(Date date) {
if (date == null) {
date = new Date();
}
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(date);
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1);
cal.set(Calendar.DAY_OF_MONTH, 0);
fillTime(cal);
return cal.getTime();
}
public static Date getYearBeginDate(Date date) {
return yearStart(date == null ? new Date() : date);
}
public static Date getYearEndDate(Date date) {
return yearEnd(date == null ? new Date() : date);
}
public static Date yearStart(Date date) {
Calendar cal = new GregorianCalendar();
cal.setTime(date);
cal.set(Calendar.MONTH, cal.getActualMinimum(Calendar.MONTH));
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
cal.set(Calendar.HOUR_OF_DAY, cal.getActualMinimum(Calendar.HOUR_OF_DAY));
cal.set(Calendar.MINUTE, cal.getActualMinimum(Calendar.MINUTE));
cal.set(Calendar.SECOND, cal.getActualMinimum(Calendar.SECOND));
cal.set(Calendar.MILLISECOND, cal.getActualMinimum(Calendar.MILLISECOND));
return cal.getTime();
}
public static Date yearEnd(Date date) {
Calendar cal = new GregorianCalendar();
cal.setTime(date);
cal.set(Calendar.MONTH, cal.getActualMaximum(Calendar.MONTH));
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
cal.set(Calendar.HOUR_OF_DAY, cal.getActualMaximum(Calendar.HOUR_OF_DAY));
cal.set(Calendar.MINUTE, cal.getActualMaximum(Calendar.MINUTE));
cal.set(Calendar.SECOND, cal.getActualMaximum(Calendar.SECOND));
cal.set(Calendar.MILLISECOND, cal.getActualMaximum(Calendar.MILLISECOND));
return cal.getTime();
}
public static Date monthStart(Date date) {
Calendar cal = new GregorianCalendar();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
cal.set(Calendar.HOUR_OF_DAY, cal.getActualMinimum(Calendar.HOUR_OF_DAY));
cal.set(Calendar.MINUTE, cal.getActualMinimum(Calendar.MINUTE));
cal.set(Calendar.SECOND, cal.getActualMinimum(Calendar.SECOND));
cal.set(Calendar.MILLISECOND, cal.getActualMinimum(Calendar.MILLISECOND));
return cal.getTime();
}
public static Date monthEnd(Date date) {
Calendar cal = new GregorianCalendar();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
cal.set(Calendar.HOUR_OF_DAY, cal.getActualMaximum(Calendar.HOUR_OF_DAY));
cal.set(Calendar.MINUTE, cal.getActualMaximum(Calendar.MINUTE));
cal.set(Calendar.SECOND, cal.getActualMaximum(Calendar.SECOND));
cal.set(Calendar.MILLISECOND, cal.getActualMaximum(Calendar.MILLISECOND));
return cal.getTime();
}
public static Date dayStart(Date date) {
Calendar cal = new GregorianCalendar();
cal.setTime(date);
cal.set(Calendar.HOUR_OF_DAY, cal.getActualMinimum(Calendar.HOUR_OF_DAY));
cal.set(Calendar.MINUTE, cal.getActualMinimum(Calendar.MINUTE));
cal.set(Calendar.SECOND, cal.getActualMinimum(Calendar.SECOND));
cal.set(Calendar.MILLISECOND, cal.getActualMinimum(Calendar.MILLISECOND));
return cal.getTime();
}
public static Date dayEnd(Date date) {
Calendar cal = new GregorianCalendar();
cal.setTime(date);
cal.set(Calendar.HOUR_OF_DAY, cal.getActualMaximum(Calendar.HOUR_OF_DAY));
cal.set(Calendar.MINUTE, cal.getActualMaximum(Calendar.MINUTE));
cal.set(Calendar.SECOND, cal.getActualMaximum(Calendar.SECOND));
cal.set(Calendar.MILLISECOND, cal.getActualMaximum(Calendar.MILLISECOND));
return cal.getTime();
}
public static Date parseDate(String s) {
return new Date(Long.parseLong(s));
}
public static int getBetweenDays(Date d1, Date d2) {
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(d1);
c2.setTime(d2);
if (c1.after(c2)) {
c1.setTime(d2);
c2.setTime(d1);
}
int betweenYears = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR);
int betweenDays = c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR);
for (int i = 0; i < betweenYears; i++) {
betweenDays += c1.getActualMaximum(Calendar.DAY_OF_YEAR);
c1.set(Calendar.YEAR, (c1.get(Calendar.YEAR) + 1));
}
return betweenDays;
}
public static int getYear(Date d) {
Calendar c = Calendar.getInstance();
c.setTime(d);
return c.get(Calendar.YEAR);
}
public static int getMonth(Date d) {
Calendar c = Calendar.getInstance();
c.setTime(d);
return c.get(Calendar.MONTH);
}
public static int getDate(Date d) {
Calendar c = Calendar.getInstance();
c.setTime(d);
return c.get(Calendar.DATE);
}
/**
* 格式化日期為.
* <p>
* 5分,10秒,5天10分5秒
* </p>
*
* @param date the date
* @return 返回格式化后的日期
*/
public static String format(Date date) {
return format(date, new Date(), "yyyy-MM-dd HH:mm:ss");
}
public static String format(Date date1, Date date2, String format) {
if (date1 == null || date2 == null) {
return "";
}
long day_millis = 86400000; // 一天的毫秒數(shù) 60*60*1000*24
long times = date2.getTime() - date1.getTime();
long day = times / day_millis;
//如果時間間隔大于30天就按format的格式返回
if (day > 30 && StringUtils.isNotBlank(format)) {
return DateFormatUtils.format(date2, format);
}
return format(times);
}
/**
* 顯示時間長度.
*
* @param times 時間長度 ms.
* @return 顯示字符串.
*/
public static String format(long times) {
long day_millis = 86400000; // 一天的毫秒數(shù) 60*60*1000*24
long hour_millis = 3600000; // 一小時的毫秒數(shù) 60*60*1000
long minute_millis = 60000; // 一分鐘的毫秒數(shù) 60*1000
long second_millis = 1000; // 一秒的毫秒數(shù) 1*1000
long day = times / day_millis;
long hour = (times % day_millis) / hour_millis;
long minute = ((times % day_millis) % hour_millis) / minute_millis;
long second = (((times % day_millis) % hour_millis) % minute_millis / second_millis);
String time = "";
if (day != 0) {
time = time + java.lang.Math.abs(day) + "天";
}
if (hour != 0) {
time = time + java.lang.Math.abs(hour) + "小時";
}
if (minute != 0) {
time = time + java.lang.Math.abs(minute) + "分";
}
if (second != 0) {
time = time + java.lang.Math.abs(second) + "秒";
}
if (StringUtils.isBlank(time)) {
time = "0";
}
return time;
}
}
時間常用工具集
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- (更新于2018.12.15 )持續(xù)更新... 收集整理的一些前端開發(fā)常用的工具函數(shù) 數(shù)組去重方法 數(shù)組快速排序 ...
- 網(wǎng)絡(luò)抓包相關(guān):Charles、Wireshark; 接口調(diào)試工具:PostmanCanary; 將 IPA 安裝到...
- 雖然我知道怎么找官網(wǎng),但是統(tǒng)一起來更方便。處理 dex轉(zhuǎn)smali 的工具h(yuǎn)ttps://bitbucket.o...
- 設(shè)置Roboto字體: android:fontFamily="sans-serif-thin" JSON生成實(shí)體...