public class DateUtils {
/**
* 获取当前时间日期的字符串
*/
public static String getCurrentDateStr(DateFormatType dateFormatType) {
Date date = getCurrentDate();
return (String) OpearationDate(date, dateFormatType.getValue());
}
/**
* 时间、日期格式化成字符串
*/
public static String formatDate(Date date, DateFormatType dateFormatType) {
return (String) OpearationDate(date, dateFormatType.getValue());
}
/**
* 从字符串解析成时间、日期
*/
public static Date parseDate(String dateStr, DateFormatType dateFormatType) {
return (Date) OpearationDate(dateStr, dateFormatType.getValue());
}
/**
* 获取当前系统时间(原始格式)
*/
public static Date getCurrentDate() {
Date date = new Date(System.currentTimeMillis());
return date;
}
/**
* 获取当前日期的年、月、日、时、分、秒
*/
public static int getCurrentTime(TimeFormatType timeFormatType) {
return getTime(getCurrentDate(), timeFormatType);
}
/**
* 获取指定日期的年、月、日、时、分、秒
*/
public static int getTime(Date date, TimeFormatType timeFormatType) {
try {
Calendar c = Calendar.getInstance();
c.setTime(date);
int type = timeFormatType.getValue();
int i = c.get(type);
return type == 2 ? i + 1 : i;
} catch (Exception e) {
throw new RuntimeException("获取失败", e);
}
}
/**
* 获取指定日期的毫秒数
*/
public static long getMillis(Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.getTimeInMillis();
}
/**
* 日期相加、减操作
*
* 所返回结果单位为:天数
*/
public static int operationDate(Date date, Date diffDate, DateOperationType dateOperationType) {
long add = getMillis(date) + getMillis(diffDate);
long diff = getMillis(date) - getMillis(diffDate);
return (int) ((dateOperationType.getValue() ? add : diff) / (24 * 3600 * 1000));
}
/**
* 日期月份相加、减操作
*/
public static Date operationDateOfMonth(Date date, int month, DateOperationType dateOperationType) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.MONTH, dateOperationType.getValue() ? month : month - (month * 2));
return c.getTime();
}
/**
* 日期天数相加、减操作
*/
public static Date operationDateOfDay(Date date, int day, DateOperationType dateOperationType) {
Calendar c = Calendar.getInstance();
c.setTime(date);
long millis = c.getTimeInMillis();
long millisOfday = day * 24 * 3600 * 1000;
long sumMillis = dateOperationType.getValue() ? (millis + millisOfday) : (millis - millisOfday);
c.setTimeInMillis(sumMillis);
return c.getTime();
}
private static Object OpearationDate(Object object, String formatStr) {
if (object == null || null == formatStr || "".equals(formatStr)) {
throw new RuntimeException("参数不能为空");
}
SimpleDateFormat format = new SimpleDateFormat(formatStr);
try {
if (object instanceof Date)
return format.format(object);
else
return format.parse(object.toString());
} catch (Exception e) {
throw new RuntimeException("操作失败", e);
}
}
public enum DateOperationType {
/**
* 加操作
*/
ADD(true),
/**
* 减操作
*/
DIFF(false);
private final boolean value;
DateOperationType(boolean operation) {
this.value = operation;
}
public boolean getValue() {
return value;
}
}
public enum TimeFormatType {
YEAR(1), MONTH(2), DAY(5), HOUR(11), MINUTE(12), SECOND(13);
private final int value;
TimeFormatType(int formatStr) {
this.value = formatStr;
}
public int getValue() {
return value;
}
}
public enum DateFormatType {
/**
* 格式为:yyyy-MM-dd HH:mm:ss
*/
DATE_FORMAT_STR("yyyy-MM-dd HH:mm:ss"),
/**
* 格式为:yyyyMMddHHmmss
*/
SIMPLE_DATE_TIME_FORMAT_STR("yyyyMMddHHmmss"),
/**
* 格式为:yyyy-MM-dd
*/
SIMPLE_DATE_FORMAT_STR("yyyy-MM-dd"),
/**
* 格式为:yyyy/MM/dd
*/
SIMPLE_DATE_FORMAT_VIRGULE_STR("yyyy/MM/dd"),
/**
* 格式为:HH:mm:ss
*/
HOUR_MINUTE_SECOND("HH:mm:ss"),
/**
* 格式为:HH:mm
*/
HOUR_MINUTE("HH:mm");
private final String value;
DateFormatType(String formatStr) {
this.value = formatStr;
}
public String getValue() {
return value;
}
}
}
分享到:
相关推荐
java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
这是一本以面试题为入口讲解 Java 核心内容的技术书籍,书中内容极力的向你证实代码是对数学逻辑的具体实现。当你仔细阅读书籍时,会发现Java中有大量的数学知识,包括:扰动函数、负载因子、拉链寻址、开放寻址、...
Java OCR(Optical Character Recognition,光学字符识别)技术是一种计算机视觉领域的应用,它能将图像中的文字转换成可编辑的文本格式。这项技术在各种场景下都有广泛应用,比如文档扫描、车牌识别、发票处理等。...
Java API文档是Java开发者的重要参考资料,它包含了Java开发工具包(JDK)中的所有类、接口、方法和常量的详细说明。这份中文网页版的Java API文档为中国的开发者提供了便利,无需通过英文版本来学习和查找API信息,...
java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java...
JAVA开发人员最新版本7.0 api文档!本文档是 Java Platform Standard Edition 7 的 API !Java 1.7 API的中文帮助文档。 深圳电信培训中心 徐海蛟博士教学用api 7.0中文文档。支持全文检索,在线即时查询。 里面列...
java单机小游戏java单机小游戏java单机小游戏java单机小游戏 java单机小游戏java单机小游戏java单机小游戏java单机小游戏 java单机小游戏java单机小游戏java单机小游戏java单机小游戏 java单机小游戏java单机小游戏...
java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
Java2Pas是一个实用工具,主要用于将Java编程语言编写的源代码转换为Pascal语言的等效代码。这个工具对于那些需要在两种语言之间迁移代码或者理解不同编程语言语法的开发者来说非常有价值。Java和Pascal虽然都是面向...
HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...
### Java 错误处理:java.lang.OutOfMemoryError: Java heap space 在Java应用程序开发过程中,经常遇到的一个问题就是内存溢出错误,特别是在处理大量数据或长时间运行的应用时。其中,“java.lang....
Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 ...
Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高度的可移植性,灵活性和安全性。本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,...