public class DateUtil {
private static final String formatString = "yyyy-MM-dd HH:mm:ss SSS";
private static final String formatStringScd = "yyyy-MM-dd HH:mm:ss";
private static final String formatStringMi = "yyyy-MM-dd HH:mm";
private static final String formatStringHr = "yyyy-MM-dd HH";
private static final String formatStringDy = "yyyy-MM-dd";
private static final SimpleDateFormat formatStrScd = new SimpleDateFormat(
"HH:mm");
private static SimpleDateFormat formaterFull = new SimpleDateFormat(formatString);
private static SimpleDateFormat formaterScd = new SimpleDateFormat(formatStringScd);
private static SimpleDateFormat formaterMi = new SimpleDateFormat(formatStringMi);
private static SimpleDateFormat formaterHr = new SimpleDateFormat(formatStringHr);
private static SimpleDateFormat formaterDy = new SimpleDateFormat(formatStringDy);
public synchronized static String format(Date date) {
return formaterFull.format(date);
}
public synchronized static String format(Date date, String format) {
try {
SimpleDateFormat formater = getFormater(format);
return formater.format(date);
} catch (Exception ex) {
return null;
}
}
public synchronized static Date parse(String date) {
try {
return formaterFull.parse(date);
} catch (Exception ex) {
try {
return formaterScd.parse(date);
} catch (Exception sEx) {
try {
return formaterMi.parse(date);
} catch (Exception mEx) {
try {
return formaterHr.parse(date);
} catch (Exception hEx) {
try {
return formaterDy.parse(date);
} catch (Exception dEx) {
return null;
}
}
}
}
}
}
public synchronized static Date parse(String date, String formatString) {
try {
return getFormater(formatString).parse(date);
} catch (Exception ex) {
return null;
}
}
private static Map<String, SimpleDateFormat> mapFormat = new HashMap<String, SimpleDateFormat>();
private synchronized static SimpleDateFormat getFormater(String formatString) {
if (mapFormat.containsKey(formatString)) {
return mapFormat.get(formatString);
} else {
SimpleDateFormat formater = new SimpleDateFormat(formatString);
mapFormat.put(formatString, formater);
return formater;
}
}
public static Date addSecond(Date src, Integer value) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(src);
calendar.add(Calendar.SECOND, value);
src = calendar.getTime();
return src;
}
public static Date addMinute(Date src, Integer value) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(src);
calendar.add(Calendar.MINUTE, value);
src = calendar.getTime();
return src;
}
public static Date addMinute(Date src, Integer value, Date maxData) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(src);
calendar.add(Calendar.MINUTE, value);
src = calendar.getTime();
if (src.after(maxData)) {
return maxData;
}
return src;
}
public static Date addHour(Date src, Integer value, Date maxData) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(src);
calendar.add(Calendar.HOUR, value);
src = calendar.getTime();
if (src.after(maxData)) {
return maxData;
}
return src;
}
public static Date addHour(Date src, Integer value) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(src);
calendar.add(Calendar.HOUR, value);
src = calendar.getTime();
return src;
}
public static Date addDays(Date src, Integer days) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(src);
calendar.add(Calendar.DATE, days);
src = calendar.getTime();
return src;
}
public static Date addMonth(Date src, Integer value) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(src);
calendar.add(Calendar.MONTH, value);
src = calendar.getTime();
return src;
}
public static Date addYear(Date src, Integer value) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(src);
calendar.add(Calendar.YEAR, value);
src = calendar.getTime();
return src;
}
public static Date nowTime() {
return new Date();
}
public static int subTimeMinute(Date src1, Date src2) {
return (int) ((src1.getTime() - src2.getTime()) / (1000 * 60));
}
public static String getDateHm(Date date) {
return formatStrScd.format(date);
}
public static String getDateYmD(Date date) {
return formaterFull.format(date);
}
/**
* 时间相加1小时 *
*/
public static Date addOneHour(Date startDate, Integer hours) {
startDate.setMinutes(startDate.getHours() + hours);
return startDate;
}
//判断<firstDate>时间点是否在<secondDate>时间点之前
public static boolean isBefore(Date firstDate, Date secondDate) {
return compare(firstDate, secondDate) < 0 ? true : false;
}
public static int compare(Date firstDate, Date secondDate) {
Calendar firstCalendar = null;
if (firstDate != null) {
firstCalendar = Calendar.getInstance();
firstCalendar.setTime(firstDate);
}
Calendar secondCalendar = null;
if (firstDate != null) {
secondCalendar = Calendar.getInstance();
secondCalendar.setTime(secondDate);
}
try {
return firstCalendar.compareTo(secondCalendar);
} catch (NullPointerException e) {
throw new IllegalArgumentException(e);
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException(e);
}
}
}
分享到:
相关推荐
在Java中,日期处理是一项常见的任务,涉及到多个类和方法。本篇文章主要总结了Java中关于日期处理的基础知识,包括`java.util.Calendar`,`java.util.GregorianCalendar`以及`java.util.Date`这三个核心类。 首先...
Python-基础-时间日期处理小结.html
"JAVA日期判断方法小结" 在JAVA语言中,日期判断是非常重要的一部分,以下是常见的日期判断方法的总结: 1. 判断某年是否为润年 判断某年是否为润年是日期判断的基本方法之一。该方法可以使用以下代码实现: ```...
这篇小结将详细介绍几个常用的函数,帮助你更好地理解和使用这些功能。 首先,`now()`函数是最常用的获取当前日期时间的函数,它返回服务器上的当前日期和时间,格式为`YYYY-MM-DD HH:MM:SS`。例如,`now()`可能...
现将几种主要情况进行小结: 一、如何输入NULL值 如果不输入null值,当时间为空时,会默认写入”1900-01-01″,在业务处理时很麻烦。 ctrl+0即可输入NULL值。 二、如何在sql语句中判断为NULL的时间字段 假设表为:...
本文档详细介绍了DB2 中关于日期的一些基本用法,包括如何获取当前日期、时间、日期的各个组成部分以及如何计算特定日期等。通过对这些基础功能的掌握,可以帮助数据库开发者更高效地管理和操作数据。在实际应用中,...
关于java中date和Calendar日期处理小结,包含一些常用方法等
在这个实例小结中,我们将探讨5个JavaScript日期时间操作的例子,帮助理解如何在JavaScript中处理日期和时间。 1. 指定位置的时钟显示 这个例子创建了一个始终位于网页中间的12小时制时钟。通过`Date`对象获取当前...
Python基础-时间日期处理小结涉及的知识点包括Python中的时间日期处理方法,这主要通过datetime模块和time模块来实现。时间日期处理在编程中是基础且重要的一环,尤其在需要记录事件时间、处理时间数据的业务场景中...
以下是对PHP日期操作的...以上技巧对于日常PHP开发中的日期处理非常实用。理解并熟练运用这些方法,能够帮助开发者更好地管理和操作日期数据,同时确保代码的准确性和安全性。希望这些内容能对PHP编程实践有所帮助。
本小结将主要介绍`datetime`模块中的`strftime()`和`strptime()`函数,这两个函数能够帮助开发者以指定的格式输出日期和时间,或者将字符串转换成日期时间对象。 `strftime()`函数是用来将日期时间对象格式化为字符...
Java 中 Calendar 类的用法小结 Calendar 类是 Java 语言中一个基本而重要的组成部分,用于处理日期和时间。下面是 Calendar 类的用法小结: 一、取得当前时间 使用 Calendar.getInstance() 方法可以取得当前时间...
在实际项目中,可以结合PHP的其他日期时间函数,如`strtotime`、`date`、`DateTime`类等,来实现更复杂的日期时间处理需求。例如,可以利用`DateTime::add`和`DateTime::sub`进行日期的加减,或者使用`date_create_...
小结 本文总结了 SQL Server 中的日期函数,包括字符转日期、日期转字符串等方面的知识点。日期函数是数据库管理系统中非常重要的一部分,掌握日期函数可以帮助开发者更好地处理日期和时间数据。
### 银行业务系统小结 #### 一、银行业务系统基础知识 银行业务系统是银行内部处理各类金融交易和客户信息的复杂网络,涵盖了从账户管理、交易处理到风险管理等多个方面。为了确保数据的准确性和系统的高效运行,...
SQL Server 和 C# 中的 DateTime 使用小结 SQL Server 中的日期函数是数据库管理系统中非常重要的一部分,它提供了多种日期函数来操作日期类型的数据。同时,在 C# 中也提供了多种方法来处理日期类型的数据。本文将...
总的来说,`flatpickr` 是一个强大且灵活的 JavaScript 日期时间选择器,无论你是需要简单的日期选择功能,还是需要复杂的日期处理逻辑,它都能提供满足需求的解决方案。其易用性和丰富的定制选项,使得它成为开发者...
《Bruce作品小结——Delphi编程的多元应用》 Bruce的作品集合是一套由Delphi编程语言编写的实用工具,涵盖了文本编辑、文件管理、视觉特效以及多媒体播放等多个领域,为用户提供了丰富的功能体验。让我们逐一深入...