java 日期类封装_java 常用工具封装日期类

java 常用工具封装日期类

常用的日期类进行封装,避免以后在调用日期的时候在此写该方法那么会导致项目臃肿。

返回当前星期的Map集合

/*

* 返回参数所在星期的七天,如传入'2021-06-02'星期四,则返回所在星期周一到周日的Map

* @param date

* @return Map

* */

public static HashMapString,Date getWeekDates(Date date){

HashMapString,Date dates = new HashMapString,Date();

Calendar c= Calendar.getInstance();

c.setTime(date);

c.setFirstDayOfWeek(Calendar.MONDAY);

int index = c.get(Calendar.DAY_OF_WEEK);

c.add(Calendar.DAY_OF_WEEK,(-1) * (index - 1));

c.add(Calendar.DAY_OF_WEEK,(-1) * (index - 1));

dates.put("MON",c.getTime());

c.add(Calendar.DAY_OF_WEEK,1);

dates.put("TUE",c.getTime());

c.add(Calendar.DAY_OF_WEEK,1);

dates.put("WED",c.getTime());

c.add(Calendar.DAY_OF_WEEK,1);

dates.put("THU",c.getTime());

c.add(Calendar.DAY_OF_WEEK,1);

dates.put("FRI",c.getTime());

c.add(Calendar.DAY_OF_WEEK,1);

dates.put("SAT",c.getTime());

c.add(Calendar.DAY_OF_WEEK,1);

dates.put("SUN",c.getTime());

return dates;

}

/*

* param date

* pram number

* return 几天后的时间日期

* */

public static Date getDateByTaDay(Date date,int number){

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

calendar.add(Calendar.DAY_OF_YEAR,number);

Date nextDay = calendar.getTime();

return nextDay;

}

/*

* param date

* param number 几天后的时间日期

* return 几天后的时间日期去除时分秒

* */

public static Date getDateByYID(Date date,int number){

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

calendar.add(Calendar.DAY_OF_YEAR,number);

Date nextDay = calendar.getTime();

nextDay.setHours(0);

nextDay.setMonth(0);

nextDay.setSeconds(0);

return nextDay;

}

/*

* @param beforeDate

* @param lastDate

* @param days 间隔天数

* @return 判断两个日期的间隔天数是否超过参数值 超过返回true 未超过返回false

* */

public static boolean checkDistanceDay(Date beforeDate,Date lastDate,int days){

long interval = 0L;

if (beforeDate.before(lastDate)){

interval = lastDate.getTime() - beforeDate.getTime();

}else{

interval = beforeDate.getTime() - lastDate.getTime();

}

int betweenDays = (int)(interval)/(1000 * 60 * 60 * 24);

if (betweenDays days){

return true;

}else{

return false;

}

}

/*

* @param Date

* @return 返回参数日期所在季度,1:第一季度 2:第二季度 3:第三季度 4:第四季度

* */

public static int getQuarter(Date date){

Calendar cal = Calendar.getInstance();

cal.setTime(date);

int month = cal.get(Calendar.MONTH);

switch (month){

case 0:

return 1;

case 1:

return 1;

case 2:

return 1;

case 3:

return 2;

case 4:

return 2;

case 5:

return 2;

case 6:

return 3;

case 7:

return 3;

case 8:

return 3;

case 9:

return 4;

case 10:

return 4;

case 11:

return 4;

default:;

}

return -1;

}

/*

* 把分钟转换成小时

* @param mins

* return 小时

* */

public static String formatMinutesHours(Long mins){

if (mins == null || mins.longValue() == 0){

return "0";

}

return (mins / 60 10 "0"+mins / 60 : mins / 60)+":"+ StringUtils.leftPad(""+mins % 60,2,"0");

}

/*

* 删除给定Date的时分秒毫秒

* */

public static Date truncateTimeOfDate(Date now){

if ( null == now){

return null;

}

Calendar day = Calendar.getInstance();

day.setTime(now);

day.set(Calendar.HOUR_OF_DAY,0);

day.set(Calendar.MINUTE,0);

day.set(Calendar.SECOND,0);

day.set(Calendar.MILLISECOND,0);

return day.getTime();

}

/*

* 获取两个日期之间的所有日期

* @param startDate

* @param endDate

* @return

* */

public static ListDate getIntervalDates(Date startDate, Date endDate){

ListDate result = new ArrayListDate();

Long intervalDay = getDateInterval(DataConvertUtil.truncateTimeOfDate(startDate), DataConvertUtil.truncateTimeOfDate(endDate));

if (intervalDay 0){

return result;

}

for (Long len = 0L ; len = intervalDay ; len++){

Date currentDate = addDateFieId(startDate, Calendar.DATE, len.intValue());

result.add(currentDate);

}

return result;

}

public static Date addDateFieId(Date now,int fieid,int amount){

if (now == null){

return null;

}

if (amount == 0){

return now;

}

Calendar dar = Calendar.getInstance();

dar.setTime(now);

dar.add(fieid,amount);

return dar.getTime();

}

/*

* 计算当月有多少天

* @param year年

* @param month 月

* */

public static int days(int year,int month){

int days = 0;

if (month != 2){

switch (month){

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

days=31;

break;

case 4:

case 6:

case 9:

case 11:

days = 30;

break;

}

}else{

if ( year % 4 == 0 year % 100 != 0 || year % 400 == 0){

days = 29;

}else{

days = 28;

}

}

return days;

}

/*

* 求两个日期差

* @param beginDate 开始日期

* @param endDate 结束日期

* @return 两个日期相差天数

* */

public static Long getDateInterval(Date starDate,Date endDate){

if (starDate.after(endDate)){

return -1L;

}

long interval = endDate.getTime() - starDate.getTime();

return interval / (1000 * 60 * 60 *24);

}

public static String getDataYID(Date date){

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");

String format = simpleDateFormat.format(date);

return format;

}

public static String getDateYIDString(String date) throws ParseException {

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date parse = simpleDateFormat.parse(date);

return getDataYID(parse);

}

public static String getDataHour(Date date){

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HHmmss");

String format = simpleDateFormat.format(date);

return format;

}

java 常用工具封装日期类 相关文章

思维导图整理Java并发基础

话不多说,先上图。 1、基本概念 欲说线程,必先说进程。 进程 :进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程 :线程是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。 操作系统在

java中自定义excel模板并且填充内容

场景 读取某一份固定的excel模板,根据数据填充进入指定的位置 本地测试时,在本地resources下创建一个存放模板的位置 例: 实现 挺简单的就直接贴代码吧,不得不吐槽一下博客园的编辑器真的很难用.. @Override public void exportDeposit(UserInfo userInfo, Lo

Java-Apache Commons Jexl3-动态表达式判断

!-- https://mvnrepository.com/artifact/org.apache.commons/commons-jexl3 -- dependency groupIdorg.apache.commons/groupId artifactIdcommons-jexl3/artifactId version3.1/version /dependency /** * Jexl表达式计算 */ @Test public void jexlUseFun(

【Java】String字符串格式化

一、前言 String.format() 作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,为了不止步于简单调用 String.format("Hello %s", "John"); ,下面将笔记整理并记录下来。 其实各个语言的字符串格式化方法都是相通的,你可以在其中找到你熟悉的语言

学习JAVA 的markdown第一天

Markdown学习 标题 +回车一级标题:##+回车二级标题:###+空格二级标题(最多二级标题 字体 Hellow,World!粗体 Hellow,World! 两边加两个星号+空格 Hellow,World!斜体 Hellow,World! 两边加一个星号+空格 Hellow,World斜体+加粗 Hellow,World! 两

javascript解决小数的加减乘除精度丢失的方案

原因:js按照2进制来处理小数的加减乘除,在arg1的基础上 将arg2的精度进行扩展或逆扩展匹配,所以会出现如下情况. javascript(js)的小数点加减乘除问题,是一个js的bug如0.3*1 = 0.2999999999等,下面列出可以完美求出相应精度的四种js算法 123456789101112131

Java 从0到Hello world

首先来看看这三个词:JDK、JRE、JVM JDK : Java Development Kit java开发者工具 包括JRE和JVM JRE : Java Runtime Environment java运行时环境 包含JVM JVM : Java Virtue Machine java虚拟机 卸载JDK(方便后来使用) 删除Java的安装目录 此电脑属性--高

Java操作MongoDB采用MongoRepository仓库进行条件查询

MongoDB与spring集成,操作mongo非常方便 主要有两种方式: 一、使用MongoTemplate 二、使用Spring Data Mongodb的MongoRepository 两者的区别就是第一种得自己写CURD语句,第二种非常方便基本不用自己写CURD语句 我之前一直使用的都是MongoTemplate,这次就

关于JVM

Java Virtual Machine JVM特性 平台无关性 Java虚拟机是实现Java平台无关性的关键,引入JVM后,Java语言在不同平台上运行时不需要重新编译。JVM在执行字节码时,把字节码解释成具体平台上的机器指令执行。 JVM的位置 JVM的体系结构 栈、本地方法栈、程序计数

封装Npgsql

using System;using System.Collections.Generic;using System.Linq;using System.Web;using Npgsql;using System.Configuration;using System.Data;namespace PostgreSQLTest.DAO{ public class NpgsqlHelper { private static string connectionString = C

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值