`

java使用Calendar类获取常用简单工具类

 
阅读更多

前言:

在工作中,我们经常会用到时间相关的。比如月初、月末、年初、年末、指定月份所在季度的季末、当前时间加X天、x月、x年等这些常用的虽说不难,但是如果要用到,立马又想不起来。这里凯哥归纳了一些常用的放在一个工具类中。有需要的朋友可以拿去或是收藏。如果大家有更好的,欢迎留言。如果凯哥哪里不对,欢迎大家留言骂起~。

声明:本文有凯哥Java(www.kaigejava.com)发布于凯哥个人博客。

正文:

1:获取指定日期 指定月份后的最后一天。返回格式:yyyyMMdd

获取指定日期 指定月份后的最后一天

public static String getMaxMonthDate(String dateStr,String dftStr,int monthnum) {

    if(StringUtils.isEmpty(dftStr)){

dftStr="yyyyMMdd";

}

    SimpleDateFormat dft = new SimpleDateFormat(dftStr);

Calendar calendar = Calendar.getInstance();

try {

if(dateStr!=null && !"".equals(dateStr)){

calendar.setTime(dft.parse(dateStr));

}

} catch (ParseException e) {

e.printStackTrace();

}

calendar.add(Calendar.MONTH, monthnum);

calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));

return dft.format(calendar.getTime());

}

2:指定月份获取对应月所在季度末。返回yyyyMMdd

2:指定月份获取对应月所在季度末。返回yyyyMMdd

public String getThisSeasonEnd(String repeatDate,String dftStr) {

int xyear; // 日期属性:年

int ymonth; // 日期属性:月

SimpleDateFormat dft = new SimpleDateFormat(dftStr);

    Calendar localTime = Calendar.getInstance();//获取当前

    String dateString = "";

  try {

           if(repeatDate!=null && !"".equals(repeatDate)){

           localTime.setTime(dft.parse(repeatDate));//设置时间

           }              

   xyear = localTime.get(Calendar.YEAR);

   ymonth = localTime.get(Calendar.MONTH) + 1;

   if (ymonth >= 1 && ymonth <= 3) {

   dateString = xyear + "-" + "03" + "-" + "31";

   }

   if (ymonth >= 4 && ymonth <= 6) {

   dateString = xyear + "-" + "06" + "-" + "30";

   }

   if (ymonth >= 7 &&ymonth <= 9) {

   dateString = xyear + "-" + "09" + "-" + "30";

   }

   if (ymonth >= 10 && ymonth <= 12) {

   dateString = xyear + "-" + "12" + "-" + "31";

   }

       } catch (ParseException e) {

           e.printStackTrace();

       }

 

return dateString.replace("-", "");

}

3: 获取指定日期所在年份最后一天。返回格式yyyyMMdd

3: 获取指定日期所在年份最后一天。返回格式yyyyMMdd

public String getYearEnd(String repeatDate ,String dftStr){

if(StringUtils.isEmpty(dftStr)){

dftStr="yyyyMMdd";

}

SimpleDateFormat dft = new SimpleDateFormat(dftStr);

    Calendar localTime = Calendar.getInstance();//获取当前

    

         try {

         if(repeatDate!=null && !"".equals(repeatDate)){

         localTime.setTime(dft.parse(repeatDate));

         repeatDate=localTime.get(Calendar.YEAR)+"1231";

         }

} catch (ParseException e) {

e.printStackTrace();

}

         

return repeatDate;

}

这里凯哥偷懒了。获取月份后直接加上1231.其实可以直接使用类获取的。

4:指定日期开始指定时间结束。返回格式yyyyMMdd

4:指定日期开始指定时间结束。返回格式yyyyMMdd

public String getXLeter(String dateStr ,String dftStr,String type,int x){

if(StringUtils.isEmpty(dftStr)){

dftStr="yyyyMMdd";

}

    SimpleDateFormat dft = new SimpleDateFormat(dftStr);

Calendar calendar = Calendar.getInstance();

try {

if(dateStr!=null && !"".equals(dateStr)){

calendar.setTime(dft.parse(dateStr));

}

} catch (ParseException e) {

e.printStackTrace();

}

if("01".equals(type)){//一个月后

        //calendar.add(Calendar.DATE, x);

        calendar.add(Calendar.MONTH, x);

}else if("02".equals(type)){//三个月后

        calendar.add(Calendar.MONTH, x);

}else if("03".equals(type)){//一年后

        calendar.add(Calendar.YEAR, x);

}

return dft.format(calendar.getTime());

}

5:获取到月初、年初。返回格式yyyyMMdd

5:获取到月初、年初。返回格式yyyyMMdd

public static String getMinMonthDate(String dateStr,String dftStr,int monthnum,String type) {

   if(StringUtils.isEmpty(dftStr)){

dftStr="yyyyMMdd";

}

   SimpleDateFormat dft = new SimpleDateFormat(dftStr);

       Calendar calendar = Calendar.getInstance();

       try {

           if(dateStr!=null && !"".equals(dateStr)){

               calendar.setTime(dft.parse(dateStr));

           }

       } catch (ParseException e) {

           e.printStackTrace();

       }

       calendar.add(Calendar.MONTH, monthnum);

       if("m".equals(type)){//月份

       calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));

      

       }else if("y".equals(type)){//

       calendar.set(Calendar.DAY_OF_YEAR, calendar.getActualMinimum(Calendar.DAY_OF_YEAR));

      

       }

       

       return dft.format(calendar.getTime());

   }

 

1
0
分享到:
评论

相关推荐

    Java常用工具类

    Java常用工具类是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,最著名的工具类库是`java.util`包,它包含了大量实用类,如集合、日期时间、数学计算、...

    java 常用工具类

    Java工具类是Java编程中非常重要的组成部分,它们提供了一系列预定义的方法,可以帮助开发者高效地处理各种常见任务,而无需从头实现。在Java中,最知名的工具类库是`java.util`包,它包含了大量方便实用的类。下面...

    java开发,30个常用工具类总结,全部来自项目实践中用到的工具类

    以下是对标题和描述中提到的几个常用工具类的详细说明: 1. **DateUtils**: `java.util.Date` 和 `java.time` 包含日期和时间的操作,但DateUtils通常是Apache Commons Lang库中的一个工具类,提供更方便的日期处理...

    牛逼的java常用工具类

    在这个名为"牛逼的java常用工具类"的压缩包中,我们可以期待找到一些由经验丰富的开发者精心设计和优化的工具类,这些工具类能极大地提高开发效率,减少代码量,使程序更加健壮。下面,我们将详细探讨一些可能包含在...

    java常用开发工具类大全

    "java常用开发工具类大全"很可能包含以上提到的一些工具类的实现或扩展,便于开发者在项目中快速集成和使用。通过阅读`readme.htm`和解压后的`1845027886334976.zip`文件,你可以获取更多具体的信息和示例,以便更好...

    27个java常用的工具类

    这里我们将探讨27个常用的Java工具类,以及它们在实际开发中的应用。 1. **Arrays**: 提供了一系列静态方法来操作数组,如排序、复制、填充和比较等。例如,`Arrays.sort()` 可以对数组进行排序,`Arrays.equals()`...

    java常用工具类

    以下是根据标题“java常用工具类”和描述中提到的“date工具类”、“string工具类”等进行的详细知识点解析: 1. **Date和Calendar工具类**: - `java.util.Date`:表示特定瞬间,精确到毫秒。但直接操作日期对象...

    java 使用GregorianCalendar类获取系统的当前时间

    在Java编程语言中,`GregorianCalendar`类是用于表示日期和时间的重要工具。它是`Calendar`类的一个具体实现,能够处理公历(格里高利历)中的日期和时间。当我们需要获取系统的当前时间时,`GregorianCalendar`类...

    Java基础之Date和Calendar类的使用方法

    Java中的Date和Calendar类是处理日期和时间的核心组件。Date类主要用于表示特定的瞬间,精确到毫秒。在早期版本的Java中,Date类的设计受到批评,因为它的API不直观且容易导致错误。为了解决这些问题,大部分日期和...

    java常用工具类的使用

    ### Java常用工具类的使用 #### 1. Java工具概述 在Java开发中,很多复杂的算法和数据结构已经被实现并封装在标准库中,供开发者直接使用。这大大减轻了开发者的负担,使得他们能够专注于应用程序的核心逻辑。例如...

    28个java常用的工具类源码

    以上知识点涵盖了Java开发中的常用工具类及其核心功能,通过学习和理解这些源码,开发者可以更好地掌握Java编程的精髓,提高代码质量和效率。同时,理解这些工具类的实现也有助于应对面试中的技术问题。

    常用工具类常用工具类.zip

    在Java编程语言中,"工具类"通常指的是包含各种实用方法的类,这些...理解和熟练使用这些工具类,对于提升Java编程能力至关重要。在实际项目中,根据需求选择合适的工具类和库,可以显著提高代码的可维护性和可靠性。

    java常用系统类库实验

    在`Birthday.java`程序中,学生将学习如何使用`Date`, `Calendar`类以及`SimpleDateFormat`来处理日期时间。用户需要按照特定格式输入自己的生日日期,程序将利用这些类来确定生日是星期几,计算年龄,并判断出生...

    java的calendar具体用法

    ### Java中的Calendar类详解 #### 一、引言 在Java中处理日期和时间非常常见,而`java.util.Calendar`类则是进行此类操作的核心...无论是简单的日期获取还是复杂的日期计算,`Calendar`类都能够提供有效的解决方案。

    JAVA 工具类 项目

    在Java编程中,工具类(Utility Class)是包含静态方法的类,这些方法通常执行某种通用操作或提供一些辅助功能。这些工具类可以极大地提高代码的可读性和可重用性,减少代码冗余,使得开发者能更专注于业务逻辑。在...

    java各种常用的工具类封装 源码

    在Java编程中,工具类(Util)是程序员经常会用到的辅助类库,它们提供了许多实用功能,简化了代码编写。以下将详细讲解标题和描述中提到的几个关键工具类及其封装方法: 1. **DateUtil**: Java中的日期时间处理在...

    JAVA常用工具类

    以上就是Java中的一些常用工具类,它们极大地简化了开发过程,提高了代码的可读性和效率。熟练掌握这些工具类的使用,对于Java开发者来说是非常重要的。在实际开发中,我们还会遇到其他各种特定场景下的工具类,比如...

    JavaCalendar_JAVA源码_

    JavaCalendar是Java编程语言中用于处理日期和时间的重要类,它是`java.util.Calendar`的实现。这个源码分析将深入探讨Java中日期和时间的管理,以及如何利用`Calendar`类进行相关的操作。 首先,`Calendar`类是抽象...

Global site tag (gtag.js) - Google Analytics