coding++:java-Date日期转换工具类
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日期转换工具类的更多相关文章
- 日期转换工具类 CommUtil.java
package com.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.ut ...
- 时间日期转换工具类,获取当前时间YYYYMMDD24HHMISS、YYYYMMDDHHMISS
YYYYMMDD24HHMISS:24小时制时间(显示上只是比YYYYMMDDHHMISS中间多了一个24),例:2018102224112440 YYYYMMDDHHMISS:12小时制时间,例20 ...
- java 二进制数字符串转换工具类
java 二进制数字符串转换工具类 将二进制转换成八进制 将二进制转换成十进制 将二进制转换成十六进制 将十进制转换成二进制 package com.iteye.injavawetrust.ad; i ...
- java 常用Bean 转换工具类
package com.hnf.framework.utils; import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.data ...
- Java时间格式转换工具类
把当前时间修改成指定时间 //把当前时间修改成指定时间 public String dateUtil(Integer seconds, String dateFormatPattern){ Date ...
- java自编时间工具类
package timeTools; import java.text.ParseException; import java.text.SimpleDateFormat; import java.u ...
- Java 日期格式工具类
Java 日期格式工具类 方法如下 DateUtil 类 import java.text.DateFormat; import java.text.ParseException; import ja ...
- java日期比较工具类
package com.net.util; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.ut ...
- 【Java】字节数组转换工具类
import org.apache.commons.lang.ArrayUtils; import java.nio.charset.Charset; /** * 字节数组转换工具类 */ publi ...
随机推荐
- 一些大厂的css reset 代码
不同的浏览器对标签的默认值不同,为了避免页面出现浏览器差异,所以要初始化样式表属性.使用通配符*并不可取,因为会遍历到每一个标签,大型网页会加载过慢,影响性能. 雅虎工程师提供的CSS初始化示例代码: ...
- TCP/IP基础总结性学习(6)
HTTP 首部 一. HTTP 报文首部 1.HTTP 报文的结构: 2.HTTP 请求报文 图示: 举例子: 3.HTTP 响应报文: 下面的示例是访问 http://hackr.jp 时,请求报文 ...
- DNA sequence HDU - 1560
DNA sequence Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- Flutter json 2 model with Built Value
Flutter json 2 model with Built Value Flutter中json转换model, 除了手动转之外, 就是利用第三方库做一些代码生成. 流行的库有: json_ser ...
- ggplot2练习
图源于电力电子课本65页——电容滤波的单相不可控整流电路. f<-function(w,d) { l<-w/sqrt(w^2+1)*exp(-atan(w)/w)*exp(-d/w) r& ...
- 学习ConcurrentHashMap1.7分段锁原理
1. 概述 接上一篇 学习 ConcurrentHashMap1.8 并发写机制, 本文主要学习 Segment分段锁 的实现原理. 虽然 JDK1.7 在生产环境已逐渐被 JDK1.8 替代,然而一 ...
- Iconfont-阿里巴巴矢量图标库 登录账户是 github自动登录
Iconfont-阿里巴巴矢量图标库 登录账户是 github自动登录
- webpack,Babel,babel-loader的关系
本文将要介绍 webpack,Babel,babel-loader 的关系.理清楚他们各自做了什么事情. 通常我们新建一个项目,会先配置webpack,然后配置babel:babel是一个编译工具,实 ...
- 靓仔,整合SpringBoot还在百度搜配置吗?老司机教你一招!!!
导读 最近陈某公司有些忙,为了保证文章的高质量可能要两天一更了,在这里陈某先说声不好意思了!!! 昨天有朋友问我SpringBoot如何整合Redis,他说百度谷歌搜索了一遍感觉不太靠谱.我顿时惊呆了 ...
- maven中的pom配置文件一——spring,mybatis,oracle,jstl,json,文件上传
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...