`

java处理日期函数汇总(经典收藏)

    博客分类:
  • java
阅读更多
 
 

public DateUtil(){}
/**
      * @see      取得当前日期(格式为:yyyy-MM-dd)
      * @return String
      */
     public String GetDate()
     {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         String sDate = sdf.format(new Date());
         return sDate;
     }


 

     /**
      * @see      取得当前时间(格式为:yyy-MM-dd HH:mm:ss)
      * @return String
      */
     public static String GetDateTime()
     {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String sDate = sdf.format(new Date());
         return sDate;
     }


 

     /**
      * @see      按指定格式取得当前时间()
      * @return String
      */
     public String GetTimeFormat(String strFormat)
     {
         SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
         String sDate = sdf.format(new Date());
         return sDate;
     }


 

     /**
      * @see      取得指定时间的给定格式()
      * @return String
      * @throws ParseException
      */
     public String SetDateFormat(String myDate,String strFormat) throws ParseException
     {

         SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
         String sDate = sdf.format(sdf.parse(myDate));

         return sDate;
     }


 

     public String FormatDateTime(String strDateTime, String strFormat)
     {
         String sDateTime = strDateTime;
         try {
             Calendar Cal = parseDateTime(strDateTime);
             SimpleDateFormat sdf = null;
             sdf = new SimpleDateFormat(strFormat);
             sDateTime = sdf.format(Cal.getTime());
         } catch (Exception e) {

         }
         return sDateTime;
     }


 

     public static Calendar parseDateTime(String baseDate)
     {
         Calendar cal = null;
         cal = new GregorianCalendar();
         int yy = Integer.parseInt(baseDate.substring(0, 4));
         int mm = Integer.parseInt(baseDate.substring(5, 7)) - 1;
         int dd = Integer.parseInt(baseDate.substring(8, 10));
         int hh = 0;
         int mi = 0;
         int ss = 0;
         if(baseDate.length() > 12)
         {
             hh = Integer.parseInt(baseDate.substring(11, 13));
             mi = Integer.parseInt(baseDate.substring(14, 16));
             ss = Integer.parseInt(baseDate.substring(17, 19));
         }
         cal.set(yy, mm, dd, hh, mi, ss);
         return cal;
     }
     public int getDay(String strDate)
     {
         Calendar cal = parseDateTime(strDate);
         return   cal.get(Calendar.DATE);
     }


 

     public int getMonth(String strDate)
     {
         Calendar cal = parseDateTime(strDate);

         return cal.get(Calendar.MONTH) + 1;
     }


 

     public int getWeekDay(String strDate)
     {
         Calendar cal = parseDateTime(strDate);
         return cal.get(Calendar.DAY_OF_WEEK);
     }


 

     public String getWeekDayName(String strDate)
     {
         String mName[] = {
             "日", "一", "二", "三", "四", "五", "六"
         };
         int iWeek = getWeekDay(strDate);
         iWeek = iWeek - 1;
         return "星期" + mName[iWeek];
     }


 

     public int getYear(String strDate)
     {
         Calendar cal = parseDateTime(strDate);
         return cal.get(Calendar.YEAR) + 1900;
     }


 

     public String DateAdd(String strDate, int iCount, int iType)
     {
         Calendar Cal = parseDateTime(strDate);
         int pType = 0;
         if(iType == 0)
         {
             pType = 1;
         } else
         if(iType == 1)
         {
             pType = 2;
         } else
         if(iType == 2)
         {
             pType = 5;
         } else
         if(iType == 3)
         {
             pType = 10;
         } else
         if(iType == 4)
         {
             pType = 12;
         } else
         if(iType == 5)
         {
             pType = 13;
         }
         Cal.add(pType, iCount);
         SimpleDateFormat sdf = null;
         if(iType <= 2)
             sdf = new SimpleDateFormat("yyyy-MM-dd");
         else
             sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String sDate = sdf.format(Cal.getTime());
         return sDate;
     }


 

     public String DateAdd(String strOption, int iDays, String strStartDate)
     {
         if(!strOption.equals("d"));
         return strStartDate;
     }


 

     public int DateDiff(String strDateBegin, String strDateEnd, int iType)
     {
         Calendar calBegin = parseDateTime(strDateBegin);
         Calendar calEnd = parseDateTime(strDateEnd);
         long lBegin = calBegin.getTimeInMillis();
         long lEnd = calEnd.getTimeInMillis();
         int ss = (int)((lBegin - lEnd) / 1000L);
         int min = ss / 60;
         int hour = min / 60;
         int day = hour / 24;
         if(iType == 0)
             return hour;
         if(iType == 1)
             return min;
         if(iType == 2)
             return day;
         else
             return -1;
     }



    
     /*****************************************
      * @功能      判断某年是否为闰年
      * @return   boolean
      * @throws ParseException
      ****************************************/
     public boolean isLeapYear(int yearNum){
      boolean isLeep = false;
         /**判断是否为闰年,赋值给一标识符flag*/
         if((yearNum % 4 == 0) && (yearNum % 100 != 0)){
          isLeep = true;
         }   else if(yearNum % 400 ==0){
          isLeep = true;
         } else {
          isLeep = false;
         }
         return isLeep;
     }


 

    
      /*****************************************
      * @功能      计算当前日期某年的第几周
      * @return   interger
      * @throws ParseException
      ****************************************/
     public int getWeekNumOfYear(){
      Calendar calendar = Calendar.getInstance();
      int iWeekNum = calendar.get(Calendar.WEEK_OF_YEAR);
      return iWeekNum;
     }


 

     /*****************************************
      * @功能      计算指定日期某年的第几周
      * @return   interger
      * @throws ParseException
      ****************************************/
     public int getWeekNumOfYearDay(String strDate ) throws ParseException{
      Calendar calendar = Calendar.getInstance();
      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
      Date curDate = format.parse(strDate);
      calendar.setTime(curDate);
      int iWeekNum = calendar.get(Calendar.WEEK_OF_YEAR);
      return iWeekNum;
     }
      
     }

 


 


     /*****************************************
      * @功能      计算某年某周的开始日期
      * @return   interger
      * @throws ParseException
      ****************************************/
     public String getYearWeekFirstDay(int yearNum,int weekNum) throws ParseException {
     
      Calendar cal = Calendar.getInstance();
      cal.set(Calendar.YEAR, yearNum);
      cal.set(Calendar.WEEK_OF_YEAR, weekNum);
      cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
      //分别取得当前日期的年、月、日
      String tempYear = Integer.toString(yearNum);
      String tempMonth = Integer.toString(cal.get(Calendar.MONTH) + 1);
      String tempDay = Integer.toString(cal.get(Calendar.DATE));
      String tempDate = tempYear + "-" +tempMonth + "-" + tempDay;
      return SetDateFormat(tempDate,"yyyy-MM-dd");

 


 


     /*****************************************
      * @功能      计算某年某周的结束日期
      * @return   interger
      * @throws ParseException
      ****************************************/
     public String getYearWeekEndDay(int yearNum,int weekNum) throws ParseException {
      Calendar cal = Calendar.getInstance();
      cal.set(Calendar.YEAR, yearNum);
      cal.set(Calendar.WEEK_OF_YEAR, weekNum + 1);
      cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
         //分别取得当前日期的年、月、日
      String tempYear = Integer.toString(yearNum);
      String tempMonth = Integer.toString(cal.get(Calendar.MONTH) + 1);
      String tempDay = Integer.toString(cal.get(Calendar.DATE));
      String tempDate = tempYear + "-" +tempMonth + "-" + tempDay;
      return SetDateFormat(tempDate,"yyyy-MM-dd");
     }

 


 

        
     /*****************************************
      * @功能      计算某年某月的开始日期
      * @return   interger
      * @throws ParseException
      ****************************************/
     public String getYearMonthFirstDay(int yearNum,int monthNum) throws ParseException {
     
      //分别取得当前日期的年、月、日
      String tempYear = Integer.toString(yearNum);
      String tempMonth = Integer.toString(monthNum);
      String tempDay = "1";
      String tempDate = tempYear + "-" +tempMonth + "-" + tempDay;
      return SetDateFormat(tempDate,"yyyy-MM-dd");     
     }

 


 


     /*****************************************
      * @功能      计算某年某月的结束日期
      * @return   interger
      * @throws ParseException
      ****************************************/
     public String getYearMonthEndDay(int yearNum,int monthNum) throws ParseException {

        //分别取得当前日期的年、月、日
      String tempYear = Integer.toString(yearNum);
      String tempMonth = Integer.toString(monthNum);
      String tempDay = "31";
      if (tempMonth.equals("1") || tempMonth.equals("3") || tempMonth.equals("5") || tempMonth.equals("7") ||tempMonth.equals("8") || tempMonth.equals("10") ||tempMonth.equals("12")) {
       tempDay = "31";
      }
      if (tempMonth.equals("4") || tempMonth.equals("6") || tempMonth.equals("9")||tempMonth.equals("11")) {
       tempDay = "30";
      }
      if (tempMonth.equals("2")) {
       if (isLeapYear(yearNum)) {
        tempDay = "29";
       } else {
          tempDay = "28";
       }
      }
      //System.out.println("tempDay:" + tempDay);
      String tempDate = tempYear + "-" +tempMonth + "-" + tempDay;
      return SetDateFormat(tempDate,"yyyy-MM-dd"); 

     }


 

}

分享到:
评论

相关推荐

    java时间操作函数汇总

    在Java中,`Calendar`类和`Date`类经常被用于处理时间和日期相关的任务。这两个类之间的转换是十分常见的需求。 ##### 1. `Calendar`转换为`Date` ```java Calendar cal = Calendar.getInstance(); Date date = ...

    java时间操作函数汇总.pdf

    Java时间操作函数主要涉及到对日期和时间的创建、转换、格式化、计算等操作,以下是对这些函数的详细说明: 1. **计算某一月份的最大天数** 使用`Calendar`类来获取特定年份和月份的最大天数。首先创建一个`...

    java时间操作函数汇总[参考].pdf

    Java时间操作函数是Java编程中常见且重要的部分,主要用于处理日期和时间的计算、格式化以及转换等任务。以下是对这些函数的详细说明: 1. 计算某一月份的最大天数: `Calendar` 类提供了获取月份最大天数的方法 `...

    java时间操作函数汇总[借鉴].pdf

    了解和熟练掌握这些Java时间操作函数,对于处理日期和时间相关的业务逻辑非常有帮助。在实际编程中,还可以结合Java 8引入的`java.time`包,使用`LocalDate`, `LocalTime`, `LocalDateTime`等类,它们提供了更为丰富...

    DB2各类函数总汇

    DB2 函数可以分为九大类:聚合函数、类型转换函数、数学函数、字符串函数、日期时间函数、XML 函数、分区函数、安全函数和其他函数。 一、聚合函数 聚合函数是指对表中的数据进行聚合操作的函数,常用的聚合函数...

    Java处理日期时间的方法汇总

    在Java编程中,处理日期和时间是常见的任务。Java提供了多种方法来操作日期时间,其中`java.util.Calendar`是一个核心的类。本文将详细介绍如何使用`Calendar`类进行日期时间的处理。 首先,`Calendar`类是一个抽象...

    一个Java 8+的LangChain实现。在(企业)Java环境中构建强大的基于LLM的应用程序.zip

    这个项目的重点在于利用Java 8的函数式编程、流API以及Lambda表达式来构建灵活、可扩展且易于维护的语言处理工具链。 1. **Lambda表达式**:Java 8引入了Lambda表达式,这是一种简洁的匿名函数表示方式,它可以作为...

    SQL函数大全

    SQL函数是数据库管理中不可或缺的一部分,它们用于处理和操作从表中检索出来的数据,以满足各种分析和展示需求。在SQL中,函数可以分为多种类别,每种都有特定的作用和功能。 1. 聚合函数:这类函数如COUNT、SUM、...

    Java面试笔试机试题大汇总

    Java中有多种处理日期和时间的方式: - 使用`java.util.Date`类表示具体的时间点。 - 使用`java.text.SimpleDateFormat`格式化日期。 7. **文件输入输出流** “I/O”这一关键词表明文档涉及文件读写操作。Java...

    Java英文单词汇总

    Java英文单词汇总 Java 英文单词汇总是 Java 语言中广泛使用的一些英文单词的总结,这些单词涵盖了 Java 中的大部分方法的名字。了解这些单词的含义可以帮助开发者更好地理解 Java 语言,并提高编程效率。 ...

    Java中常用的代码汇总

    ### Java中常用的代码汇总 #### 1. 字符串与整型之间的相互转换 在Java中,经常需要在字符串和整型之间进行转换。以下是一些常用的方法: - **将整型转换为字符串:** - `String a = String.valueOf(2);` - ...

    java面试题总汇《很经典的》

    14. **Java 8及以上版本的新特性**:如Lambda表达式,Stream API,Optional类,日期时间API等。 15. **单元测试**:JUnit、Mockito等工具的使用,以及测试驱动开发(TDD)的理解。 以上只是部分知识点,压缩包内的...

    HIVE函数详解大全

    7. 时间和日期函数:`YEAR`, `MONTH`, `DAY`, `HOUR`, `MINUTE`, `SECOND`,用于提取日期和时间部分。 8. 模式匹配函数:`SIMILAR TO`,类似于LIKE和RLIKE,但支持更复杂的模式匹配。 Hive函数的丰富性使得它能处理...

    2014 最新Java面试题总汇

    本文将对2014年最新Java面试题总汇中的内容进行详细知识点解析。 首先,Java面向对象的核心概念,包括super()与this()的区别,作用域的public、protected、private,以及不写时的区别。super()用于调用父类的构造...

    Java帮助文档汇总

    `java.util`包提供了集合框架、日期/时间API、泛型、函数式编程工具等。此外,还有用于网络编程的`java.net`包,用于I/O操作的`java.io`包,以及用于多线程编程的`java.concurrent`包等。通过阅读API文档,开发者...

    java关于时间的用法汇总

    ### Java关于时间的用法汇总 在Java编程中,处理日期和时间是非常常见的需求之一。本文将基于给定代码示例来详细介绍Java中处理日期和时间的一些常用方法和技术点。 #### 包装类与导入包 ```java package web.com...

    freemarker_常用内置函数

    Freemarker 是一个基于 Java 的模板引擎,它提供了一些非常有用的内置函数,可以帮助我们快速开发和生成动态内容。在本文中,我们将详细介绍 Freemarker 的一些常用内置函数。 Sequence 的内置函数 Freemarker ...

    java8.pdf详细说明java8的使用说明

    它们提供了一种处理日期、时间和时区的方式,这比旧的java.util.Date和Calendar类更加灵活和强大。 7. 流(Streams): 流是一系列元素,支持顺序和并行处理。它们可以透明地并行化处理,并在可能的情况下实现自动...

    JAVA面试题汇总

    - **java.util**:提供了各种实用工具类,如集合框架(List, Set, Map等)、日期和时间类(Date, Calendar)、排序算法(Collections.sort())等。 - **java.io**:处理输入输出操作,包括文件I/O、网络流、数据流...

Global site tag (gtag.js) - Google Analytics