java 日期类封装_JAVA 简单的日期封装类

package com.kohri.date;

import java.text.DateFormat;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

/*** @descriped a simple class for date

*@authorKohri

* @date 2012/4/22

*@version1.0*/

public class SimpleDate {

private static String defaultFormat = "yyyy-MM-dd HH:mm:ss";

private static SimpleDateFormat sf = null ;

private static Calendar cal = Calendar.getInstance();

private static Date date = null;

/*** get current date time (default 'yyyy-MM-dd HH:mm:ss')

*@returnstring*/

public static String getDateNow() {

sf = new SimpleDateFormat(defaultFormat);

String currentTime = "";

currentTime = sf.format(new Date());

return currentTime;

}

/*** get year (default now)

*@returnint*/

public static int getYear(){

int currentYear = cal.get(Calendar.YEAR);

return currentYear;

}

/*** get mon (default now)

*@returnint*/

public static int getMonth(){

int currentMonth = cal.get(Calendar.MONTH) + 1;

return currentMonth;

}

/*** get day of month (default now)

*@returnint*/

public static int getDay(){

int currentDayOfMonth = cal.get(Calendar.DAY_OF_MONTH);

return currentDayOfMonth;

}

/*** get hours (default now)

*@returnint*/

public static int getHours(){

int currentHours = cal.get(Calendar.HOUR_OF_DAY);

return currentHours;

}

/*** get  minutes (default now)

*@returnint*/

public static int getMinutes(){

int currentMinute = cal.get(Calendar.MINUTE);

return currentMinute;

}

/*** get seconds (default now)

*@returnint*/

public static int getSeconds(){

int currentSecond = cal.get(Calendar.SECOND);

return currentSecond;

}

/*** string change to date

*@paramstrDate

*@paramdateFormat

*@returndate*/

public static Date toDate(String strDate, String dateFormat){

if(strDate == null || strDate.length() == 0){

return null;

}

Date date = null;

DateFormat df = new SimpleDateFormat(dateFormat);

try {

date = df.parse(strDate);

} catch (ParseException e) {

e.printStackTrace();

}

return date;

}

/*** Returns this Calendar's time value in milliseconds

*@paramp_date

*@returnlong*/

public static long getMillisOfDate(Date date) {

cal.setTime(date);

return cal.getTimeInMillis();

}

/*** compare two date

* return the greater date

* if equals return null

*@paramstrStartDate

*@paramstrEndDate

*@returndate*/

public static Date getGreaterDate(String strStartDate, String strEndDate){

Date date = null;

Date startDate = toDate(strStartDate, "yyyy-MM-dd");

Date endDate = toDate(strEndDate, "yyyy-MM-dd");

long startTime = getMillisOfDate(startDate);

long endTime = getMillisOfDate(endDate);

if((startTime - endTime) > 0){

return startDate;

}else if((endTime - startTime) > 0){

return endDate;

}

return date;

}

/*** get days between 2 different date

*@paramstrStartDate less date (yyyy-MM-dd)

*@paramstrEndDate greater date (yyyy-MM-dd)

*@returnlong*/

public static long getDaysOftwoDiffDate(String strStartDate, String strEndDate){

Date startDate = toDate(strStartDate, "yyyy-MM-dd");

Date endDate = toDate(strEndDate, "yyyy-MM-dd");

long startTime = getMillisOfDate(startDate);

long endTime = getMillisOfDate(endDate);

long betweenDays = (long) ((endTime - startTime) / ( 1000 * 60 * 60 * 24 ));

return betweenDays;

}

/*** get weeks between 2 different date

*@paramstrStartDate less date (yyyy-MM-dd)

*@paramstrEndDate greater date (yyyy-MM-dd)

*@returnlong*/

public static long getWeeksOfTwoDiffDate(String strStartDate, String strEndDate){

return getDaysOftwoDiffDate(strStartDate, strEndDate) / 7;

}

/*** get months between 2 different date

*@paramstrStartDate less date (yyyy-MM-dd)

*@paramstrEndDate greater date (yyyy-MM-dd)

*@returnlong*/

public static long getMonthsOfTwoDiffDate(String strStartDate, String strEndDate){

return getDaysOftwoDiffDate(strStartDate, strEndDate) / 30;

}

/*** get years between 2 different date

*@paramstrStartDate less date (yyyy-MM-dd)

*@paramstrEndDate greater date (yyyy-MM-dd)

*@returnlong*/

public static long getYearsOfTwoDiffDate(String strStartDate, String strEndDate){

return getDaysOftwoDiffDate(strStartDate, strEndDate) / 365;

}

/*** add date

*@paramdate

*@paramcount

*@paramfield Calendar.YEAR(MONTH

9b8a8a44dd1c74ae49c20a7cd451974e.png..)

*@paramformat DateFormat(yyyy-MM-dd)

*@returnstring*/

public static String addDate(Date date,int count,int field,String format){

cal.setTime(date);

int year = getYear();

int month = getMonth() - 1;

int day = getDay();

int hours = getHours();

int minutes = getMinutes();

int seconds = getSeconds();

Calendar calendar = new GregorianCalendar(year, month, day, hours, minutes, seconds);

calendar.add(field,count);

DateFormat df = new SimpleDateFormat(format);

String tmpDate = df.format(calendar.getTime());

if(date == null){

cal.setTime(new Date());

}else{

cal.setTime(date);

}           return tmpDate;

}

/*** calendar settime

*@paramdate*/

private static void setCalTime(Date date){

if(date != null){

cal.setTime(date);

}

}

//setter getter

public static String getDefaultFormat() {

return defaultFormat;

}

public static void setDefaultFormat(String defaultFormat) {

SimpleDate.defaultFormat = defaultFormat;

}

public static Date getDate() {

return date;

}

public static void setDate(Date date) {

SimpleDate.date = date;

setCalTime(date);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值