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];
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值