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. 一些大厂的css reset 代码

    不同的浏览器对标签的默认值不同,为了避免页面出现浏览器差异,所以要初始化样式表属性.使用通配符*并不可取,因为会遍历到每一个标签,大型网页会加载过慢,影响性能. 雅虎工程师提供的CSS初始化示例代码: ...

  2. TCP/IP基础总结性学习(6)

    HTTP 首部 一. HTTP 报文首部 1.HTTP 报文的结构: 2.HTTP 请求报文 图示: 举例子: 3.HTTP 响应报文: 下面的示例是访问 http://hackr.jp 时,请求报文 ...

  3. DNA sequence HDU - 1560

    DNA sequence Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  4. Flutter json 2 model with Built Value

    Flutter json 2 model with Built Value Flutter中json转换model, 除了手动转之外, 就是利用第三方库做一些代码生成. 流行的库有: json_ser ...

  5. ggplot2练习

    图源于电力电子课本65页——电容滤波的单相不可控整流电路. f<-function(w,d) { l<-w/sqrt(w^2+1)*exp(-atan(w)/w)*exp(-d/w) r& ...

  6. 学习ConcurrentHashMap1.7分段锁原理

    1. 概述 接上一篇 学习 ConcurrentHashMap1.8 并发写机制, 本文主要学习 Segment分段锁 的实现原理. 虽然 JDK1.7 在生产环境已逐渐被 JDK1.8 替代,然而一 ...

  7. Iconfont-阿里巴巴矢量图标库 登录账户是 github自动登录

    Iconfont-阿里巴巴矢量图标库 登录账户是 github自动登录

  8. webpack,Babel,babel-loader的关系

    本文将要介绍 webpack,Babel,babel-loader 的关系.理清楚他们各自做了什么事情. 通常我们新建一个项目,会先配置webpack,然后配置babel:babel是一个编译工具,实 ...

  9. 靓仔,整合SpringBoot还在百度搜配置吗?老司机教你一招!!!

    导读 最近陈某公司有些忙,为了保证文章的高质量可能要两天一更了,在这里陈某先说声不好意思了!!! 昨天有朋友问我SpringBoot如何整合Redis,他说百度谷歌搜索了一遍感觉不太靠谱.我顿时惊呆了 ...

  10. maven中的pom配置文件一——spring,mybatis,oracle,jstl,json,文件上传

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...