Code:

package com.tree.ztree_demo.utils;

import org.springframework.util.ObjectUtils;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map; /**
* 日期工具类
*/
public class DateUtils { public final static String DEFAULT_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; public final static String DEFAULT_DATE_FORMAT = "yyyy-MM-dd"; public final static String SHORT_TIME_FORMAT = "yyyy-MM-dd HH:mm"; public final static DateFormat DEFAULT_TIME_FORMATER = new SimpleDateFormat(DEFAULT_TIME_FORMAT); public final static DateFormat DEFAULT_DATE_FORMATER = new SimpleDateFormat(DEFAULT_DATE_FORMAT); public final static DateFormat SHORT_TIME_FORMATER = new SimpleDateFormat(SHORT_TIME_FORMAT); private final static Map<String, Integer> CALENDAR = new HashMap<String, Integer>() {{
put("y", Calendar.YEAR);
put("m", Calendar.MONTH);
put("d", Calendar.DATE);
put("h", Calendar.HOUR);
put("n", Calendar.MINUTE);
put("s", Calendar.SECOND);
put("ms", Calendar.MILLISECOND);
}}; /**
* date 转换为 日期字符转 yyyy-MM-dd
*
* @param date
* @return
*/
public static String formatDate(Date date) {
if (date == null) {
return "";
}
return DEFAULT_DATE_FORMATER.format(date);
} /**
* date 根据指定格式进行转换
*
* @param date
* @param format
* @return
*/
public static String formatDate(Date date, String format) {
if (date == null) {
return null;
}
return new SimpleDateFormat(format).format(date);
} /**
* Date 转 字符串 yyyy-MM-dd HH:mm
*
* @param date
* @return
*/
public static String formatShortTime(Date date) {
if (date == null) {
return null;
}
return SHORT_TIME_FORMATER.format(date);
} /**
* date 转换为 日期字符转 yyyy-MM-dd HH:mm:ss
*
* @param date
* @return
*/
public static String formatTime(Date date) {
if (date == null) {
return null;
}
return DEFAULT_TIME_FORMATER.format(date);
} /**
* 获取当前字符串日期 yyyy-MM-dd
*
* @return
*/
public static String formatDateNow() {
return formatDate(new Date());
} /**
* 获取当前字符串日期 yyyy-MM-dd HH:mm:ss
*
* @return
*/
public static String formatTimeNow() {
return formatTime(new Date());
} /**
* 字符串 转 Date
*
* @param date
* @param df 需要转换的格式
* @return
*/
public static Date parseDate(String date, DateFormat df) {
if (date == null) {
return null;
}
try {
return df.parse(date);
} catch (ParseException e) {
throw new RuntimeException(e);
}
} /**
* 字符串 转 Date
*
* @param date
* @param df 需要转换的格式
* @return
*/
public static Date parseTime(String date, DateFormat df) {
if (date == null) {
return null;
}
try {
return df.parse(date);
} catch (ParseException e) {
throw new RuntimeException(e);
}
} /**
* 字符串 转 Date 格式为:yyyy-MM-dd
*
* @param date
* @return
*/
public static Date parseDate(String date) {
return parseDate(date, DEFAULT_DATE_FORMATER);
} /**
* 字符串 转 Date 格式为自定义
*
* @param date
* @param format
* @return
*/
public static Date parseDate(String date, String format) {
if (ObjectUtils.isEmpty(date)) {
return null;
}
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
try {
return dateFormat.parse(date);
} catch (ParseException e) {
throw new RuntimeException(e);
}
} /**
* 对日期的加减 神操作
*
* @param date 日期
* @param interval 指定操作类型
* @param number 加减的范围
* @param format 需要转换的格式 可以是字符串 也可以是 SimpleDateFormat 类型
* @param isDate 指定返回类型可选参数 yes 代表返回Date类型
* @return String || Date
*/
public static Object DatePeration(Object date, String interval, Integer number, Object format, String... isDate) {
try {
Date newDate = null;
String temporaryDate = null;
if (format instanceof SimpleDateFormat) {
if (date instanceof Date) {
newDate = parseDate(((SimpleDateFormat) format).format(date), ((SimpleDateFormat) format));
}
if (date instanceof String) {
newDate = parseDate((String) date, (SimpleDateFormat) format);
}
}
if (format instanceof String) {
if (date instanceof Date) {
newDate = parseDate(new SimpleDateFormat((String) format).format(date), (String) format);
}
if (date instanceof String) {
newDate = parseDate((String) date, (String) format);
}
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(newDate);
calendar.add(CALENDAR.get(interval), number);
newDate = calendar.getTime();
if (!ObjectUtils.isEmpty(isDate)) {
return newDate;
}
if (format instanceof String) {
return new SimpleDateFormat((String) format).format(newDate);
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
} public static void main(String[] args) { System.out.println(DatePeration("2019-11-05 18:00:00", "y", 1, "yyyy-MM-dd HH:mm:ss"));
System.out.println(DatePeration(new Date(), "y", 1, "yyyy-MM-dd"));
System.out.println(DatePeration("2019-11-05 18:00:00", "y", 1, DateUtils.DEFAULT_TIME_FORMAT));
System.out.println(DatePeration(new Date(), "y", 1, DateUtils.DEFAULT_TIME_FORMAT));
System.out.println(DatePeration(new Date(), "m", 1, DateUtils.DEFAULT_TIME_FORMAT)); } }

待完善...

coding++:java-Date日期转换工具类的更多相关文章

  1. 日期转换工具类 CommUtil.java

    package com.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.ut ...

  2. 时间日期转换工具类,获取当前时间YYYYMMDD24HHMISS、YYYYMMDDHHMISS

    YYYYMMDD24HHMISS:24小时制时间(显示上只是比YYYYMMDDHHMISS中间多了一个24),例:2018102224112440 YYYYMMDDHHMISS:12小时制时间,例20 ...

  3. java 二进制数字符串转换工具类

    java 二进制数字符串转换工具类 将二进制转换成八进制 将二进制转换成十进制 将二进制转换成十六进制 将十进制转换成二进制 package com.iteye.injavawetrust.ad; i ...

  4. java 常用Bean 转换工具类

    package com.hnf.framework.utils; import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.data ...

  5. Java时间格式转换工具类

    把当前时间修改成指定时间 //把当前时间修改成指定时间 public String dateUtil(Integer seconds, String dateFormatPattern){ Date ...

  6. java自编时间工具类

    package timeTools; import java.text.ParseException; import java.text.SimpleDateFormat; import java.u ...

  7. Java 日期格式工具类

    Java 日期格式工具类 方法如下 DateUtil 类 import java.text.DateFormat; import java.text.ParseException; import ja ...

  8. java日期比较工具类

    package com.net.util; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.ut ...

  9. 【Java】字节数组转换工具类

    import org.apache.commons.lang.ArrayUtils; import java.nio.charset.Charset; /** * 字节数组转换工具类 */ publi ...

随机推荐

  1. js笔记-0

    #js笔记-0 数组: indexOf方法: Array也可以通过indexOf()来搜索一个指定的元素的位置: var arr = [10, 20, '30', 'xyz']; arr.indexO ...

  2. shell编程1:变量的使用与例子

    一.Shell脚本的执行通常可以采用以下几种方式: 1):bash script-name或sh script-name(推荐使用) 2):path/script-name 或./script-nam ...

  3. APScheduler使用总结

    安装 pip install apscheduler APScheduler组件 1.triggers(触发器) 触发器中包含调度逻辑,每个作业都由自己的触发器来决定下次运行时间.除了他们自己初始配置 ...

  4. python之路-基本数据类型之str字符串

    1.概念 python中用',",''',"""引起来的内容称为字符串,可以保存少量数据并进行相应的操作 #先来看看str的源码写了什么,方法:按ctrl+鼠标 ...

  5. java套打快递单

    package org.sq.common.utils; import org.apache.commons.codec.binary.Base64;import org.apache.http.en ...

  6. A. New Building for SIS Codeforce

    You are looking at the floor plan of the Summer Informatics School's new building. You were tasked w ...

  7. 前端解决跨域问题的终极武器——Nginx反向代理

    提到代理,分为:正向代理和反向代理. 正向代理:就是你访问不了Google,但是国外有个VPN可以访问Google,你访问VPN后叫它访问Google,然后把数据传给你. 正向代理隐藏了真实的客户端. ...

  8. Win10下如何安装和搭建appium自动化测试环境

    转:https://www.cnblogs.com/huainanhai/p/11577419.html 安装Android SDK https://www.jianshu.com/p/2acdc1d ...

  9. webstorm 开新项目 setting 设置@目录别名 add @ (languages & Framewors - Javascript - Webpack 4. setting eslint enable

    webstorm 开新项目 setting 设置@目录别名 add @ (languages & Framewors - Javascript - Webpack 4. setting esl ...

  10. EPX Studio开发平台简介

    大家问我最多的问题就是“EPX 是什么?”“EPX 能够用来做什么?”“EPX 有什么优势?”“EPX 与其它开发平台的区别是什么?” 问题林林总总,总也回答不完,希望通过正文前面的这段文字,来简要回 ...