`
Riddick
  • 浏览: 640181 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Java日期操作大全

    博客分类:
  • J2SE
阅读更多
package com.util;   
  
import java.text.ParseException;   
import java.text.SimpleDateFormat;   
import java.util.Date;   
import java.util.Calendar;   
import java.util.GregorianCalendar;   
  
public class DateUtil {   
  
 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日期操作进行的详细说明: 1. **获取指定月份的第一天**: 使用`java.util.Calendar`类可以方便地获取指定日期所在月份的第一天。首先,将输入的日期字符串转换为`java.util.Date`...

    java 日期操作汇总

    java 日期操作汇总包含date calendar 相互转换

    java日期转化操作大全

    在Java编程语言中,日期和时间的处理是常见的任务,涉及到日期的创建、格式化、解析、比较以及各种转换操作。本篇文章将深入探讨Java中日期转换的各种方法和技巧。 一、日期对象的创建 在Java中,日期对象可以通过...

    Java日期操作接口

    本篇文章将详细探讨Java中的日期操作接口,特别是围绕"Java日期操作接口"这个主题,以及与之相关的`DateFilter.java`文件。 首先,Java中最基础的日期类是`java.util.Date`。这个类自Java 1.0起就存在,但它的设计...

    java日期处理大全

    ### Java日期处理大全:掌握时间的艺术 在Java编程中,日期和时间的处理是不可或缺的一部分,尤其是在涉及到数据记录、时间戳、定时任务等场景时。本文将深入探讨Java中的日期处理技术,涵盖从基础到进阶的各种技巧...

    JAVA日期操作汇总

    ### JAVA日期操作汇总 本文将对Java中的日期操作进行详细解析,主要涵盖以下几个方面: 1. 计算某个月份的最大天数; 2. `Calendar`与`Date`之间的转换; 3. 日期格式化; 4. 获取指定日期所在的周序号及设置某...

    java日期操作类

    java日期操作类 操作java日期 替换simplatedateformate

    java日期类型操作工具类

    java日期类型操作工具类

    java日期时间操作函数代码

    如果这个文件包含了代码示例,你可以打开查看具体实现,进一步学习和理解Java日期时间操作的细节。 总之,理解和熟练掌握Java的日期时间操作对于开发人员来说至关重要,无论是在处理用户输入、记录日志还是进行复杂...

    java操作日期大全

    ### Java操作日期大全 在Java开发中,对日期时间的操作是一项基本且重要的任务。本文将详细介绍如何使用Java处理各种日期类型及其转换、提取指定日期的各个组成部分、获取当前日期及指定格式、计算指定月份的天数...

    JAVA时间操作大全

    ### Java时间操作大全 #### 概述 在Java编程语言中,处理日期与时间是非常常见的需求之一。无论是开发Web应用还是桌面应用,掌握时间相关的类及其用法都至关重要。本篇文章将涵盖Java中与时间操作有关的所有基本...

    JAVA日期操作类详细讲解

    本篇内容将深入讲解Java中的日期操作类,这对于Java初学者来说是非常重要的知识点。 首先,我们要了解Java中的基础日期类`java.util.Date`。这个类在早期的Java版本中被广泛使用,但其API设计存在一些问题,例如不...

    Java Date操作大全

    Java Date操作大全 例举了所有java 日期操作

    操作日期的java包

    "操作日期的java包"即指的是Joda-Time这个第三方库。 Joda-Time是Java领域广泛使用的日期时间处理库,它的设计目标是替代Java标准库中的日期和时间API,因为后者在设计上存在一些问题,如可读性差、易用性不足等。...

    java日期时间转换大全

    ### Java日期时间转换大全 在Java编程中,处理日期和时间是常见的需求,尤其是在涉及到数据库操作、文件命名、日志记录等场景时。本文将详细解析如何在Java中进行日期和时间的转换,涵盖从字符串到日期对象的转换,...

    java对日期的加减操作

    Java 日期加减操作详解 Java 中对日期的加减操作是指对日期的加减、年、月、日、天等操作。Java 提供了多种方式来实现日期的加减操作,本文将详细介绍其中的两种方法。 使用 java.util.Calender 实现日期加减 ...

    java日期类函数方法整理

    根据给定的文件信息,...以上就是对Java日期类函数方法的整理和解释,涵盖了基本的日期操作,包括日期的格式化、解析、转换以及年份和月份的获取等。掌握这些函数和方法,能够帮助开发者更高效地处理日期相关的任务。

    java实现的日期操作类

    标题提到的"java实现的日期操作类"通常指的是使用这些类来完成特定的日期计算任务,如获取星期几或计算未来的日期。 `java.util.Date`是Java早期用来表示日期和时间的类,但它的API设计并不理想,易用性较差。因此...

    java语言日期处理大全

    以下是一些关于Java日期处理的关键知识点,这些知识点在给定的文件中有所提及: 1. **获取当前日期**: Java通过`java.util.Date`类可以获取服务器上的当前日期。创建一个Date对象即会返回当前系统时间,如`Date ...

Global site tag (gtag.js) - Google Analytics