java之封装日期工具类DateUtils
整合日期工具类DateUtils
- dateUtils日期工具类封装-各类格式方法
pom文件引入
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.5</version>
</dependency>
封装的具体格式
package com.webui.utils;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
/**
* 日期工具类
*
* @author czy
* @date 2020年08月03日上午午11:20:58
*/
public class DateUtils extends DateUtil {
/**
* 例:2019
*/
public final static String YYYY = "yyyy";
/**
* 例:2019-10
*/
public final static String YYYY_MM = "yyyy-MM";
/**
* 例:2019-10-01
*/
public final static String YYYY_MM_DD = "yyyy-MM-dd";
/**
* 例:10-10 10:10:10
*/
public final static String MM_DD_HH_MM_SS = "MM-dd HH:mm:ss";
/**
* 例:10:10
*/
public final static String HH_MM = "HH:mm";
/**
* 例:2019-10-10 10:10:10
*/
public final static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
/**
* 例:10-10
*/
public final static String MM_DD = "MM-dd";
/**
* 例:10:10:10
*/
public final static String HH_MM_SS = "HH:mm:ss";
/**
* 返回YYYY 为格式的时间字符
*
* @return String
*/
public static String getCurrentYear() {
return DateTime.now().toString(YYYY);
}
/**
* 返回YYYY-MM 为格式的时间字符
*
* @return String
*/
public static String getCurrentYearAndMonth() {
return DateTime.now().toString(YYYY_MM);
}
/**
* 返回YYYY-MM-DD 为格式的时间字符
*
* @return String
*/
public static String getCurrentYearAndMonthAndDate() {
return DateTime.now().toString(YYYY_MM_DD);
}
/**
* 返回YYYY-MM-DD HH:mm:ss 为格式的时间字符
*
* @return String
*/
public static String getCurrentTime() {
return DateTime.now().toString(YYYY_MM_DD_HH_MM_SS);
}
/**
* 返回MM-dd HH:mm:ss 为格式的时间字符
*
* @return String
*/
public static String getCurrentDateAndTime() {
return DateTime.now().toString(MM_DD_HH_MM_SS);
}
/**
* 返回HH:mm 为格式的时间字符
*
* @return String
*/
public static String getCurrentHourAndMinutes() {
return DateTime.now().toString(HH_MM);
}
/**
* 返回HH:mm:ss 为格式的时间字符
*
* @return String
*/
public static String getCurrentHourAndMinutesAndSeconds() {
return DateTime.now().toString(HH_MM_SS);
}
/**
* 返回YYYYMMDDHHmmss 为格式的时间字符
*
* @return String
*/
public static String getTimeMillis() {
return DateTime.now().toString(DatePattern.PURE_DATETIME_MS_PATTERN);
}
/**
* @param date
* @param format
* @return
*/
public static String dateToStr(Date date, String format) {
return new DateTime(date).toString(format);
}
/**
* 返回当前年
*
* @return int
*/
public static int getYear() {
return thisYear();
}
/**
* 返回当前月份
*
* @return int
*/
public static int getMonth() {
return thisMonth();
}
/**
* 返回当天是当月的第几号
*
* @return int
*/
public static int getDay() {
return thisDayOfMonth();
}
/**
* 返回当前小时,24小时制
*
* @return String
*/
public static int getHour() {
return thisHour(true);
}
/**
* 返回当前毫秒数
*
* @return String
*/
public static long getCurrentMillisecond() {
return System.currentTimeMillis();
}
/**
* 获取传入时间之后的多少天
*
* @param date 传入时间
* @param i 加几天
* @return 返回时间格式:yyyy-MM-dd HH:mm:ss
*/
public static String getAfterDay(Date date, int i) {
return offsetDay(date, i).toString();
}
/**
* 获取几天前的时间 时间格式yyyy-MM-dd HH:mm:ss
*
* @param beforeDay
* @return 返回时间格式:yyyy-MM-dd HH:mm:ss
*/
public static String getBeforeDay(Date date, int beforeDay) {
return offsetDay(date, -beforeDay).toString();
}
/**
* 获取传入时间之后多少给小时的时间
*
* @param date 传入时间
* @param i 加几个小时
* @return 返回时间格式:yyyy-MM-dd HH:mm:ss
*/
public static String getAfterHour(Date date, int i) {
return offsetHour(date, i).toString();
}
/**
* 获取传入时间之前多少给小时的时间 时间格式yyyy-MM-dd HH:mm:ss
*
* @param beforeHour
* @return 返回时间格式:yyyy-MM-dd HH:mm:ss
*/
public static String getBeforeHour(Date date, int beforeHour) {
return offsetDay(date, -beforeHour).toString();
}
/**
* 把日期字符串转换为具体日期刊
*
* @param dateString
* @param format 可以是yyyy-MM-dd HH:mm:ss,yyyyMMddHHmmss,yyyy-MM-dd任何需要得到的模式
* @return
*/
public static Date stringToDate(String dateString, String format) {
return parse(dateString, format);
}
/**
* 获取某年最后一天日期,返回时间格式--例:"2019-12-31 23:59:59"
*
* @param date
* @return 返回时间格式--例:"2019-12-31 23:59:59"
*/
public static String getYearLastDay(Date date) {
return endOfYear(date).toString();
}
/**
* 相差时间天数
*
* @param time1
* @param time2
* @return
*/
public static long getBetweenDay(String time1, String time2) {
Date date1 = parse(time1);
Date date2 = parse(time2);
return between(date1, date2, DateUnit.DAY);
}
/**
* 相差时间秒数
*
* @param time1
* @param time2
* @return
*/
public static long getBetweenSecond(String time1, String time2) {
Date date1 = parse(time1);
Date date2 = parse(time2);
return between(date1, date2, DateUnit.SECOND);
}
/**
* 毫秒数转换为"yyyy-MM-dd HH:mm:ss"格式时间
*
* @return String
*/
public static String getTimeForMillisecond(Long millisecond) {
return date(calendar(millisecond)).toString();
}
/**
* 判断 当前时间在开始时间与结束时间之间
*
* @param startTime 开始时间
* @param endTime 结束时间
* @param judgeTime 需要判断的时间
* @return
*/
public static Boolean betweenIsStartAndEnd(String startTime, String endTime, String judgeTime) {
return isIn(parse(judgeTime), parse(startTime), parse(endTime));
}
/**
* 判断 时间1是否大于时间2
*
* @return 计算错误返回0
*/
public static Boolean compareDateTime(String time1, String time2, String format) {
Date date1 = stringToDate(time1, format);
Date date2 = stringToDate(time2, format);
if (date1.getTime() > date2.getTime()) {
return true;
} else {
return false;
}
}
/**
* 计算出开始时间和结束时间的毫秒差,判断是否超过设定的超时时间,返回描述时间和描述信息字符串
*
* @param overrideTime 设定的超时时间
* @param startTime 开始时间
* @param endTime 结束时间
* @return
*/
public static String logTimeout(long overrideTime, long startTime, long endTime) {
long s = endTime - startTime;
return s > overrideTime ? s + "ms,超时" : s + "ms";
}
}
更多测试技术分享、学习资源以及一些其他福利可关注公众号:【Coding测试】获取:
java之封装日期工具类DateUtils的更多相关文章
- java 日期工具类DateUtils
日期工具类DateUtils CreateTime--2017年5月27日08:48:00Author:Marydon DateUtils.java-对日期类的进一步封装 import java. ...
- JAVA中封装JSONUtils工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- 日期工具类 DateUtils(继承org.apache.commons.lang.time.DateUtils类)
/** * */ package com.dsj.gdbd.utils.web; import org.apache.commons.lang3.time.DateFormatUtils; impor ...
- 在JAVA中封装JSONUtil工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- Java代码封装redis工具类
maven依赖关系: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis&l ...
- 在JAVA中封装JSONUtils工具类及使用 (转)
import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util. ...
- Java日期工具类DateUtils详解(转)
jar包 appache下的 common-lang3 一. 对指定的日期新增年.月.周.日.小时.分钟.秒.毫秒 public static Date addDays(Date date, int ...
- 【转】日期工具类DateUtils
转自csdn,原作者:jzhf2012 package date.util; import java.text.ParseException; import java.text.SimpleDateF ...
- Java 日期工具类(日期,月份加减等)--转
package util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.C ...
- Java案例——日期工具类
需求:定义一个日期工具类,包含两个方法,按日期转化成指定格式的字符串,把字符串解析为指定格式的日期 然后定义一个测试类测试 分析: 1.定义一个日期工具类 2.定义一个方法dateToString,用 ...
随机推荐
- 玩转内核链表list_head,3个超级哇塞的的例子
在Linux内核中,提供了一个用来创建双向循环链表的结构 list_head.虽然linux内核是用C语言写的,但是list_head的引入,使得内核数据结构也可以拥有面向对象的特性,通过使用操作li ...
- Win32 SDK(四)Edit控件用法
Win32 SDK(四)Edit控件用法 1获得控件句柄 HWND hEdit2 = ::GetDlgItem(hWnd, IDC_EDIT2); WINUSERAPI HWND WINAPI Get ...
- WinForm DevExpress 添加行内按钮
1.在设计器里面添加一列,设置单元格不可编辑.只读属性 2. 在所在GridView属性里面添加CustomDrawCell事件与RowCellClick事件 private void gvMain_ ...
- AutoMaper使用
使用 AutoMapper 进行赋值 一. 什么是 AutoMapper AutoMapper是对象到对象的映射工具.在完成映射规则之后,AutoMapper可以将源对象转换为目标对象. 二. Aut ...
- Windows 查看当前登录用户名
使用 PowerShell 输入 whoami,PowerShell 将以 hostname\username 的方式输出主机名和用户名: $ whoami hostname\username 使用 ...
- 【Markdown】之使用教程
Markdown 教程 https://testerhome.com/markdown Guide 这是一篇讲解如何正确使用 Markdown 的排版示例,学会这个很有必要,能让你的文章有更佳清晰的排 ...
- 西瓜杯 WP
RE 一个西瓜切两半你一半我一半 有点谜语,文本给的是输出和key # Visit https://www.lddgo.net/string/pyc-compile-decompile for mor ...
- 2024DASCTF
DASCTF prese 一眼控制了平坦化,可以用d810梭一下 跟进一下main_crypto这个函数 主要是两部分,第一部分是生成一个256大小的数组,通过输入的长度和遍历生成的一个数组 第二部分 ...
- BOM – Window.matchMedia
参考 Youtube – Detecting Screen Size and OS Dark Mode with matchMedia() - JavaScript Tutorial 介绍 CSS 有 ...
- iOS键盘通知弹框使用小结
项目开发中文本框输入的时候经常会用到键盘弹框遮挡的问题.解决办法就是根据底部键盘弹出的高度动态的改变对应view的位置.这里以多行文本框输入为例,效果图如下. //第一步,注册监听键盘通知 [[NSN ...