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 ...
随机推荐
- Ribbon进行服务调用/负载均衡以及请求重试配置
Ribbon负载均衡 经过对Eureka的认识,及Eureka集群的搭建,已经基本可以入门Eureka的使用.之前对于服务调用者我们是直接获取注册列表后通过 get(0) 的方式来获取第一个注册信息. ...
- ASP.NET CORE 启动过程及源码解读
在这个特殊的春节,大家想必都在家出不了们,远看已经到了回城里上班的日子,但是因为一只蝙蝠的原因导致我们无法回到工作岗位,大家可能有的在家远程办公,有些在家躺着看书,有的是在家打游戏:在这个特殊无聊的日 ...
- 移动端轮播图实现方法(dGun.js)
本文章介绍在移动端无缝隙轮播图实现的原理,这个轮子比较简单,但可以方便刚刚入门的同学参考.最终效果是在移动端无缝隙无限滑动,可以自定义轮播的速度.支持手势左右滑动.最后会放上源码. HTML部分 &l ...
- Android html5 控制video currentTime不准确,精确,解决办法。
早在flash时代 我们控制视频播放指定时间位置的画面也会有不准确的情况, 具体情况表现为:video.seek(time) 而实际画面会跳到此时间附近(1-2秒)的画面 而HTML5 我们通过 ...
- Html5 部分帮助文档 未完待续
W3cSchoolH5帮助文档 Video属性 视频播放效果 Video标签 src视频得目录 controls属性提供添加 播放 和音量控件 当然呢 不设置宽和高得话 视频会很大 Video还可以 ...
- 这样学习Servlet,会事半功倍!!
前言 工作已经有一段时间了,如果让我重新学Servlet,我会怎么学呢?下面抛出两个常见的问题,我分开来解答 2020年了,还需要学Servlet吗? Servlet的学习路线(学习重点) 一.202 ...
- vnstat 流量统计 并附带一个小 php 查看流量的页面
安装apt-get install vnstat 配置到自动启动update-rc.d vnstat enable 启动/etc/init.d/vnstat start vnstat基本使用命令 vn ...
- MATLAB神经网络(1) BP神经网络的数据分类——语音特征信号分类
1.1 案例背景 1.1.1 BP神经网络概述 BP神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传递,误差反向传播.在前向传递中,输入信号从输入层经隐含层逐层处理,直至输出层.每一层的神 ...
- def跨域+jwt
1.跨域 由于浏览器具有“同源策略”的限制.如果在同一个域下发送ajax请求,浏览器的同源策略不会阻止.如果在不同域下发送ajax,浏览器的同源策略会阻止. 总结 域相同,永远不会存在跨域. crm, ...
- git回滚到任意一个版本
1.首先查找提交的记录(-3表示显示最近的3条) git log -3 2.强制回滚到制定版本 git reset --hard 制定版本commitId 如:git reset --hard 4ba ...