/**
* Copyright: 2017 北京银河摩尔信息技术有限公司
*/
package cn.buyforyou.aipc.small.api.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import org.apache.commons.lang3.time.DateFormatUtils;
/**
* 日期工具类, 继承org.apache.commons.lang.time.DateUtils类
*
* @author hfj
* @version 2017-4-15
*/
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
private static String[] parsePatterns = { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
"yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss",
"yyyy.MM.dd HH:mm", "yyyy.MM", "yyyyMMddHHmmss" };
/**
* 得到当前日期字符串 格式(yyyy-MM-dd)
*/
public static String getDate() {
return getDate("yyyy-MM-dd");
}
/**
* 得到当前日期字符串 格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E"
*/
public static String getDate(String pattern) {
return DateFormatUtils.format(new Date(), pattern);
}
/**
* 得到日期字符串 默认格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E"
*/
public static String formatDate(Date date, Object... pattern) {
String formatDate = null;
if (pattern != null && pattern.length > 0) {
formatDate = DateFormatUtils.format(date, pattern[0].toString());
} else {
formatDate = DateFormatUtils.format(date, "yyyy-MM-dd");
}
return formatDate;
}
/**
* 得到日期时间字符串,转换格式(yyyy-MM-dd HH:mm:ss)
*/
public static String formatDateTime(Date date) {
return formatDate(date, "yyyy-MM-dd HH:mm:ss");
}
/**
* 得到日期时间字符串,转换格式(yyyyMMddHHmmss)
*
* @param date
* @return
*/
public static String formatDate(Date date) {
return formatDate(date, "yyyyMMddHHmmss");
}
/**
* 得到日期时间字符串,转换格式(yyyy-MM-dd)
*/
public static String formatDateDay(Date date) {
return formatDate(date, "yyyy-MM-dd");
}
/**
* 得到日期时间字符串,转换格式(yyyy-MM)
*/
public static String formatDateMonth(Date date) {
return formatDate(date, "yyyy-MM");
}
/**
* 得到当前时间字符串 格式(HH:mm:ss)
*/
public static String getTime() {
return formatDate(new Date(), "HH:mm:ss");
}
/**
* 得到当前日期和时间字符串 格式(yyyy-MM-dd HH:mm:ss)
*/
public static String getDateTime() {
return formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
}
/**
* 得到当前年份字符串 格式(yyyy)
*/
public static String getYear() {
return formatDate(new Date(), "yyyy");
}
/**
* 得到当前月份字符串 格式(MM)
*/
public static String getMonth() {
return formatDate(new Date(), "MM");
}
/**
* 方法的重载 根据时间得到月份的字符串(MM)
*/
public static String getMonth(Date date) {
return formatDate(date, "MM");
}
/**
* 得到当天字符串 格式(dd)
*/
public static String getDay() {
return formatDate(new Date(), "dd");
}
/**
* 得到当前星期字符串 格式(E)星期几
*/
public static String getWeek() {
return formatDate(new Date(), "E");
}
/**
* 日期型字符串转化为日期 格式 { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss",
* "yyyy/MM/dd HH:mm", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm" }
*/
public static Date parseDate(Object str) {
if (str == null) {
return null;
}
try {
return parseDate(str.toString(), parsePatterns);
} catch (ParseException e) {
return null;
}
}
/**
* 获取过去的天数
*
* @param date
* @return
*/
public static long pastDays(Date date) {
long t = new Date().getTime() - date.getTime();
return t / (24 * 60 * 60 * 1000);
}
/**
* 获取过去的小时
*
* @param date
* @return
*/
public static long pastHour(Date date) {
long t = new Date().getTime() - date.getTime();
return t / (60 * 60 * 1000);
}
/**
* 获取过去的分钟
*
* @param date
* @return
*/
public static long pastMinutes(Date date) {
long t = new Date().getTime() - date.getTime();
return t / (60 * 1000);
}
/**
* 转换为时间(天,时:分:秒.毫秒)
*
* @param timeMillis
* @return
*/
public static String formatDateTime(long timeMillis) {
long day = timeMillis / (24 * 60 * 60 * 1000);
long hour = (timeMillis / (60 * 60 * 1000) - day * 24);
long min = ((timeMillis / (60 * 1000)) - day * 24 * 60 - hour * 60);
long s = (timeMillis / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
long sss = (timeMillis - day * 24 * 60 * 60 * 1000 - hour * 60 * 60 * 1000 - min * 60 * 1000 - s * 1000);
return (day > 0 ? day + "," : "") + hour + ":" + min + ":" + s + "." + sss;
}
/**
* 获取两个日期之间的天数
*
* @param before
* @param after
* @return
*/
public static double getDistanceOfTwoDate(Date before, Date after) {
long beforeTime = before.getTime();
long afterTime = after.getTime();
return (afterTime - beforeTime) / (1000 * 60 * 60 * 24);
}
/**
* 根据已知时间往前推一个月
*
* @param date
* @return
*/
public static Date getPushMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, -1);
return calendar.getTime(); // 1号的日期
}
/**
* 获取当前系统前2天日期
*
* @param date
* @return
*/
public static Date getBeforeDay() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -2);
/*
* calendar.set(Calendar.HOUR_OF_DAY, 23); //将分钟至0 calendar.set(Calendar.MINUTE, 59); //将秒至0
* calendar.set(Calendar.SECOND,59); //将毫秒至0 calendar.set(Calendar.MILLISECOND, 999);
*/
Date date = calendar.getTime();
return date;
}
/**
* 得到当前日期和时间字符串 格式(yyyyMMddHHmmss)
*/
public static String getStringTime() {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
return sdf.format(date);
}
/**
* 获取几天之前/之后的日期
*
* @param day 为负时获取为几天之前的日期。返回日期无具体时分秒
* @return
*/
public static Date getBeforeDay(int day) {
Calendar calendar = new GregorianCalendar();
Date date = getNowDate();
calendar.setTime(date);
calendar.add(calendar.DATE, day);
date = calendar.getTime();
return date;
}
/**
* 得到当前时间
*
* @return
*/
public static Date getNowDate() {
ZoneId zoneId = ZoneId.systemDefault();
LocalDate localDate = LocalDate.now();
ZonedDateTime zdt = localDate.atStartOfDay(zoneId);
Date date = Date.from(zdt.toInstant());
return date;
}
/**
* Date年月日转化为 String年月日时分秒
*
* @param strDate
* @return
*/
public static String getStringByDate(Date DateTime) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = sdf.format(DateTime);
return date;
}
/**
* String 年月日转化为Date 年月日时分秒
*
* @param strDate
* @return
*/
public static Date getDateString(String strDate) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date = sdf.parse(strDate);
return date;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
/**
* 将 yyyy-MM-dd 格式字符串转date
*
* @param dateString
* @return
*/
public static Date getStringToDate(String dateString) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = sdf.
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Java项目开发常用工具包,其中主要包括:Assert.java BufferedImageLuminanceSource.java CipherUtil.java ClientConst.java CodeUtil.java ComputeUtil.java DataUtils.java DateUtils.java Digests.java Encodes.java EncryptionUtil.java FileUtil.java HttpUtils.java JsonUtil.java MapUtil.java MyGenerator.java PaginationPlugin.java RandomNumUtil.java ReflectionUtils.java SnowflakeIdWorker.java SpringUtil.java UUIDUtils.java WriteBitMatricToFile.java XmlUtil.java
资源推荐
资源详情
资源评论
收起资源包目录
util.rar (24个子文件)
util
RandomNumUtil.java 608B
SnowflakeIdWorker.java 4KB
Encodes.java 5KB
PaginationPlugin.java 6KB
ComputeUtil.java 1KB
WriteBitMatricToFile.java 3KB
CipherUtil.java 1KB
Assert.java 6KB
ClientConst.java 455B
MyGenerator.java 2KB
JsonUtil.java 1KB
CodeUtil.java 7KB
HttpUtils.java 5KB
DataUtils.java 5KB
FileUtil.java 2KB
Digests.java 3KB
SpringUtil.java 2KB
MapUtil.java 4KB
XmlUtil.java 1KB
ReflectionUtils.java 18KB
UUIDUtils.java 352B
DateUtils.java 28KB
EncryptionUtil.java 1KB
BufferedImageLuminanceSource.java 3KB
共 24 条
- 1
资源评论
格勒弗特
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功