`
jeelee
  • 浏览: 636996 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java常用日期处理

    博客分类:
  • java
阅读更多
package javabean;
import java.util.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParsePosition;

/**
* @author JeeLee
* 日期处理类
*/
public class GetDate
{
Calendar calendar = null;
SimpleDateFormat dateFormat = null;
String dateStr = "",dateTimeStr = "" ;
Date date = null,date1 = null,date2 = null;

/**
* 构造函数:获得Calendar对象
* @author JeeLee
*/
public GetDate()
{
calendar = Calendar.getInstance();
}

/**
*  获得当前日期(无格式):yyyymmdd
*  @author JeeLee
*  @param 无
*  @return String 类型,返回长度为8码的日期,格式:yyyymmdd
*/
public String getNowDate()
{
date = new Date();
dateFormat = new SimpleDateFormat("yyyyMMdd");
dateStr = dateFormat.format(date);
return dateStr ;
}
/**
*  根据传入的参数格式,获得当前日期
*  @author JeeLee
*  @param format String 类型,日期格式,如:yyyy/mm/dd
*  @return String 类型,根据参数返回格式化的日期
*/
public String getNowDate(String format)
{
date = new Date();
dateFormat = new SimpleDateFormat(format);
dateStr = dateFormat.format(date);
return dateStr ;
}
/**
*  获得当前时间(无格式):yyyyMMddkms
*  @author JeeLee
*  @param 无
*  @return String 类型,返回日期时间:yyyyMMddhh24miss
*/
public String getNowDateTime()
{
date = new Date();
dateFormat = new SimpleDateFormat("yyyyMMddhms");
dateStr = dateFormat.format(date);
return dateStr ;
}
/**
*  根据传入的参数格式,获得当前时间
*  @author JeeLee
*  @param format String 类型,时间格式,如:yyyy/MM/dd hh:mm:ss
*  @return String 类型,根据参数格式,返回日期时间
*/
public String getNowDateTime(String format)
{
date = new Date();
dateFormat = new SimpleDateFormat(format);
dateStr = dateFormat.format(date);
return dateStr ;
}
/**
*  将字符串转换成日期
*  @author JeeLee
*  @param dateStr String 类型,代表一个日期
*  @return Date 类型,返回日期
*/
public Date stringToDate(String dateStr)
{
dateFormat = new SimpleDateFormat("yyyyMMdd");
try
{
date = dateFormat.parse(dateStr);
}
catch(Exception e)
{
System.out.println("字符串转换成日期失败!");
}
return date ;
}
/**
* 将字符串转换成日期时间
* @param dateTimeStr
* @return
*/
public Date stringToDateTime(String dateTimeStr)
{
dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
try
{
date = dateFormat.parse(dateTimeStr);
}
catch(Exception e)
{
System.out.println("字符串转换成日期失败!");
}
return date ;
}

/**
* 将日期转换成字符串,格式为:YYYYMMDD
* @author JeeLee
* @param date Date 类型,一个日期
* @return String 类型,返回一个日期
*/
public String dateToString(Date date)
{
dateFormat = new SimpleDateFormat("yyyyMMdd");
dateStr = dateFormat.format(date);
return dateStr ;
}

/**
* 将日期转换成字符串,格式为:YYYYMMDDhhmmdd
* @author JeeLee
* @param date Date 类型,一个日期
* @return String 类型,返回一个日期
*/
public String dateTimeToString(Date date)
{
dateFormat = new SimpleDateFormat("yyyyMMddHHmmdd");
dateStr = dateFormat.format(date);
return dateStr ;
}

/**
* 将日期转换成字符串,格式为:输入的格式
* @author JeeLee
* @param date Date类型,日期;format String 类型,日期格式
* @return String类型,返回一个日期
*/
public String dateToString(Date date,String format)
{
dateFormat = new SimpleDateFormat(format);
dateStr = dateFormat.format(date);
return dateStr ;
}

/**
* 将没有格式化的字符串日期格式化
* @param dateStr,传入没有格式化的日期:yyyyMMdd
* @param format,要格式化的格式,例如:yyyy/MM/dd
* @return 格式化后的日期
*/
public String getFormatDate(String dateStr,String format)
{
return dateToString(stringToDate(dateStr),format);
}

/**
* 将没有格式化的字符串日期格式化
* @param dateStr,传入没有格式化的日期:yyyyMMddhhmmss
* @param format,要格式化的格式,例如:yyyy/MM/dd hh:mm:ss
* @return 格式化后的日期
*/
public String getFormatDateTime(String dateTimeStr,String format)
{
return dateToString(stringToDateTime(dateTimeStr),format);
}
/**
*  获得两个日期时间差
*  @author JeeLee
*  @param sdate String 类型,一个日期;edate String 类型,一个日期
*  @return long 类型
*/
public long getTwoDateMinus(String sdate,String edate)
{
long daynum = 0;

date1 = stringToDate(sdate);
date2 = stringToDate(edate);
daynum = (date1.getTime() - date2.getTime())/(24*60*60*1000) ;

return daynum ;
}

/**
*  获得年份
*  @author JeeLee
*  @param dateStr String 类型,YYYYMMDD格式的日期
*  @return 返回 int 类型的年份
*/
public int getYear(String dateStr)
{
int year = 2009 ;

year = Integer.parseInt(dateStr.substring(0, 4));

return year ;
}

/**
*  获得日期的星期
*  @author JeeLee
*  @param dateStr String 类型,一个日期
*  @return int 类型,返回0-6星期,0 表示星期日
*/
public int getWeekDay(String dateStr)
{
int day = 0 ;

date = stringToDate(dateStr) ;
calendar = Calendar.getInstance();
calendar.setTime(date);
day = calendar.get(Calendar.DAY_OF_WEEK);

return day ;
}

/**
*  获得中文星期
*  @author JeeLee
*  @param dateStr String 类型,一个日期
*  @return String 类型,返回中文星期
*/
public String getWeekDayC(String dateStr)
{
int day = 0 ;
String dayStr = "";

day = getWeekDay(dateStr);
switch(day)
{
case 0:
dayStr = "星期日";
break ;
case 1:
dayStr = "星期一";
break ;
case 2:
dayStr = "星期二";
break ;
case 3:
dayStr = "星期三";
break ;
case 4:
dayStr = "星期四";
break ;
case 5:
dayStr = "星期五";
break ;
case 6:
dayStr = "星期六";
break ;
}

return dayStr ;
}

/**
*  获得某月的最后一天
*  @author JeeLee
*  @param dateStr String 类型,一个日期
*  @return String 类型,返回一个日期,格式yyyymmdd
*/
public String getMonthDays(String dateStr)
{
date = stringToDate(dateStr) ;
calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DATE,1);
calendar.add(Calendar.MONTH,1);
calendar.add(Calendar.DATE,-1);

dateFormat = new SimpleDateFormat("yyyyMMdd");
dateStr = dateFormat.format(calendar.getTime());

return dateStr ;
}

/**
*  判断是否是闰年
*  @author JeeLee
*  @param year int 类型,一个年份
*  @return boolean 类型,true表示闰年,false表示非闰年
*/
public boolean isLeapYear(int year)
{
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}

/**
*  获得某月的全部日期
*  @author JeeLee
*  @param dateStr String 类型,一个日期
*  @return String[][] 类型的7列长二维数组
*/
public String[][] getMonthDate(String dateStr)
{
String[][] monthDate;
String lastDateStr = "";
int dayCount = 0,n = 0,firstDay = 0,weekCount = 0;
boolean flag = false;

lastDateStr = getMonthDays(dateStr);
System.out.println("lastDateStr="+lastDateStr);
lastDateStr = lastDateStr.substring(6);
dayCount = Integer.parseInt(lastDateStr);
System.out.println("dayCount="+dayCount);
firstDay = getWeekDay(dateStr.substring(0, 6)+"01");
System.out.println("firstDay="+firstDay);
weekCount = (int) Math.ceil((double)(dayCount + firstDay - 1) / 7);
System.out.println("weekCount="+weekCount);
monthDate = new String[weekCount][7];

for(int i = 0 ;i < weekCount ; i++)
{
for(int j = 0 ;j < 7 ; j++)
{
if(n < dayCount)
{
monthDate[i][j] = " ";
if(firstDay - 1 == j)
{
flag = true ;
}
if(flag)
{
n++ ;
monthDate[i][j]=String.valueOf(n);
}
}
}
}

return monthDate ;
}
/**
* 获得十二生肖
* @author JeeLee
* @param year int 类型,一个年份
* @return String 类型,十二生肖
*/
public String getAnimals(int year)
{
String[] animals = new String[]{"牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪","鼠"};
int index = 0 ;

if (year >= 2009)
{
if (Math.abs(year - 2009)%12 == 12 || Math.abs(year - 2009)%12 == 0)
{
index = 0 ;
}
else
{
index = Math.abs(year - 2009) % 12;
}
}
else
{
if(Math.abs(year - 2009)%12 == 12 || Math.abs(year - 2009)%12 == 0)
{
index = 0 ;
}
else
{
index = 12 - Math.abs(year - 2009) % 12;
}
}

return animals[index];
}
/**
*  获得天干地支纪年法
*  @author JeeLee
*  @param year int 类型,一个年份
*  @return String 类型,天干地支纪年
*/
public String getGZ(int year)
{
String tiangan[]= new String[]{"己","庚","辛","壬","癸","甲","乙","丙","丁","戊"} ;
String dizhi[]= new String[]{"丑","寅","卯","辰","巳","午","未","申","酉","戌","亥","子"} ;
int indexgan = 0,indexzhi = 0;

if (year >= 2009)
{
if (Math.abs(year - 2009)%10  == 10 || Math.abs(year - 2009)%10 == 0)
{
indexgan = 0 ;
}
else
{
indexgan = Math.abs(year - 2009) % 10 ;
}

if(Math.abs(year - 2009)%12  == 12 || Math.abs(year - 2009)%12  == 0)
{
indexzhi = 0 ;
}
else
{
indexzhi = Math.abs(year - 2009) % 12 ;
}
}
else
{
if (Math.abs(year - 2009)%10 == 10 || Math.abs(year - 2009)%10 == 0)
{
indexgan = 0 ;
}
else
{
indexgan = 10 - Math.abs(year - 2009) % 10 ;
}

if(Math.abs(year - 2009)%12 == 12 || Math.abs(year - 2009)%12  == 0)
{
indexzhi = 0 ;
}
else
{
indexzhi = 12 - Math.abs(year - 2009) % 12 ;
}
}

return tiangan[indexgan]+dizhi[indexzhi];
}

}
分享到:
评论

相关推荐

    最全Java常用日期处理工具类

    2014" 专门用于处理springboard定时任务修改cron参数的日期处理方法 12.获取本月第一天(月初时间) 13.获取本月最后一天(月底时间) 以上这些方法都在该Java工具类,当然不仅仅包含这些,还有其他的很多。

    Java中对日期的常用处理(转)

    本文将基于标题“Java中对日期的常用处理(转)”来深入探讨Java中的日期处理,结合`DateUtil.java`这个文件名,我们可以推测这是一个包含日期处理工具类的源代码文件。 首先,Java中处理日期的最基础类是`java....

    java中的日期处理类总结

    Java中的日期处理涉及到多个类,包括Date、Calendar、GregorianCalendar以及日期格式化类如DateFormat和SimpleDateFormat。这些类主要用于管理、操作和格式化日期和时间。以下是对这些类的详细说明: 1. **Date类**...

    Java中日期处理的代码

    根据给定的文件标题、描述、标签以及部分内容,我们可以总结出以下有关 Java 日期处理的知识点: ### 1. 导入必要的包 在 Java 中处理日期时,我们需要导入一些必要的包来支持日期时间的格式化、解析等功能。示例...

    JAVA处理日期时间常用方法

    Java中的日期和时间处理是程序开发中常见的任务,涉及到各种日期和时间的计算、格式化以及比较等操作。在Java中,主要使用`java.util.Date`、`java.util.Calendar`和`java.text.SimpleDateFormat`这三个核心类来处理...

    Java常用日期辅助类

    在给定的标题“Java常用日期辅助类”中,我们可以推测这篇博文可能探讨了Java中的一些核心日期处理工具,如`java.util.Date`,`java.time`包中的类,以及自定义的日期助手类`DateHelper.java`。 `java.util.Date`是...

    常用代码:java日期处理

    这篇博客"常用代码:java日期处理"很可能包含了关于如何在Java中有效地处理日期的实用示例和方法。这里我们将深入探讨Java日期处理的核心概念、API和最佳实践。 1. **Java日期API的发展历程** - Java 1.0引入了`...

    Java日期常用操作方法工具类

    在Java编程语言中,日期...总之,Java提供了丰富的日期处理工具,从基础的`Date`类到现代的`java.time`包,都能满足不同场景的需求。理解并熟练运用这些工具,能够帮助开发者更好地管理和操作日期数据,提升代码质量。

    java swing 时间日期选择控件

    标签“java日期控件”强调了这个主题关注的是Java中与日期选择相关的控件,不仅仅是Swing,也可能是JavaFX或其他库提供的日期选择组件。但在这里,我们主要讨论的是Swing环境下的实现。 在压缩包的"swing 时间控件...

    Java的日期格式化常用方法

    本文将深入探讨Java中日期格式化的常用方法,主要关注`SimpleDateFormat`和`java.time`包下的`DateTimeFormatter`。 首先,`SimpleDateFormat`是旧版日期时间API的一部分,尽管在Java 8之后被推荐使用新的`java....

    Java 8的18个常用日期处理.doc

    Java 8 日期处理知识点 Java 8 中引入了全新的日期时间 API,解决了 Java 处理日期、日历和时间的不足之处。新的 API 明确了日期时间概念,例如瞬时、长短、日期、时间、时区和周期。同时继承了 Joda 库按人类语言...

    java日期处理小结

    在Java中,日期处理是一项常见的任务,涉及到多个类和方法。本篇文章主要总结了Java中关于日期处理的基础知识,包括`java.util.Calendar`,`java.util.GregorianCalendar`以及`java.util.Date`这三个核心类。 首先...

    java常用系统类库实验

    通过这两个实验,学生不仅能够掌握Java中常用类库的使用,还能够提高解决问题的能力,学会如何利用Java标准库来简化编程任务,提高代码的效率和可读性。此外,实验中的方法覆盖练习也有助于学生深入理解面向对象编程...

    java常用的工具类整理28个

    下面我们将详细探讨Java中28个常用的工具类,主要涉及`IO`相关的开发工具。 1. **java.lang.Math**:这个类提供了许多基础数学函数,如求平方根、最大值、最小值、随机数生成等。 2. **java.util.Arrays**:用于...

    java常用类库java常用类库java常用类库

    在Java中,最重要的类库之一是Java标准库(Java Standard Library),它包括了Java的基础API,如`java.lang`、`java.util`和`java.io`等包。`java.lang`包是每个Java程序的基础,包含了基本数据类型、异常处理和一些...

    java常用的日期工具类

    本文将深入探讨Java中常用的日期工具类,并通过示例代码`DateUtil.java`来进一步解释。 1. **`java.util.Date`**: `java.util.Date`是Java最早提供的日期类,它代表了从1970年1月1日00:00:00 GMT到当前时间的毫秒...

    一些java常用的工具类

    JUnit是Java中广泛使用的单元测试框架,它提供了断言、测试套件等功能,帮助开发者编写可测试的代码。 总之,Java工具类是提高开发效率的关键,它们封装了常见的操作,减少了代码重复,提高了代码可读性和维护性。...

    时间处理常用java

    根据给定的信息,本文将详细解释Java中时间处理的一些常用方法和技术点,这些技术点主要集中在日期和时间的创建、转换、格式化以及日期之间的计算等方面。 ### 一、使用Calendar进行日期操作 #### 1. 设置特定日期...

Global site tag (gtag.js) - Google Analytics