int java 时间_java中各种时间公式

/*** 返回当前时间

*

*@return返回当前时间*/

public staticDate getCurrentDateTime() {

java.util.Calendar calNow=java.util.Calendar.getInstance();

java.util.Date dtNow=calNow.getTime();returndtNow;

}/*** 返回当前时间的数字

*

*@return返回当前时间的数字*/

public staticString getCurrentTimeNumber() {return new SimpleDateFormat("yyyyMMddHHmmss")

.format(newjava.util.Date());

}public staticString getCurrentTime() {return new SimpleDateFormat("yyyy-MM-dd").format(newjava.util.Date());

}public static int getCurrentUnixTime() throwsException {long epoch = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss")

.parse("01/01/1970 00:00:00").getTime() / 1000;return Integer.parseInt(Long.toString(System.currentTimeMillis() / 1000

-epoch));

}public static longgetSubDay(Date date2) {

Date d2= convertToDate(dateParseShortString(newDate()));

Date d1=convertToDate(dateParseShortString(date2));long day = (d1.getTime() - d2.getTime()) / (24 * 60 * 60 * 1000);returnday;

}public static longgetSubDays(Date date2) {

Date d2= convertToDateTime(dateParseString(newDate()));

Date d1=convertToDateTime(dateParseString(date2));long day = (d1.getTime() - d2.getTime()) / (24 * 60 * 60 * 1000);returnday;

}/***@return返回今天日期,时间部分为0。例如:2006-4-8 00:00:00*/

public staticDate getToday() {return truncate(newDate(), Calendar.DATE);

}/***@return返回今天日期,秒部分为0。例如:2006-4-8 23:59:00*/

public staticDate getTodayM() {

SimpleDateFormat s= new SimpleDateFormat("yyyy-MM-dd HH:mm:00");return stringToDate(s.format(newDate()));

}/***@return返回今天日期,时间部分为23:59:59.999。例如:2006-4-19 23:59:59.999*/

public staticDate getTodayEnd() {return getDayEnd(newDate());

}/*** 将字符串转换为日期(不包括时间)

*

*@paramdateString

* "yyyy-MM-dd"格式的日期字符串

*@return日期*/

public staticDate convertToDate(String dateString) {try{

DateFormat DATE_FORMAT= new SimpleDateFormat("yyyy-MM-dd",

java.util.Locale.CHINA);returnDATE_FORMAT.parse(dateString);

}catch(ParseException e) {return null;

}

}/*** 检查字符串是否为日期格式yyyy-MM-dd

*

*@paramdateString

*@returntrue=是;false=否*/

public static booleancheckDateString(String dateString) {return (convertToDate(dateString) != null);

}/*** 将字符串转换为日期(包括时间)

*

*@paramdateString

* "yyyy-MM-dd HH:mm:ss"格式的日期字符串

*@return日期时间*/

public staticDate convertToDateTime(String dateTimeString) {try{

DateFormat DATE_TIME_FORMAT= newSimpleDateFormat("yyyy-MM-dd HH:mm:ss", java.util.Locale.CHINA);returnDATE_TIME_FORMAT.parse(dateTimeString);

}catch(ParseException e) {return null;

}

}public staticDate convertToTime(String dateTimeString) {try{

DateFormat TIME_FORMAT= new SimpleDateFormat("HH:mm:ss",

java.util.Locale.CHINA);returnTIME_FORMAT.parse(dateTimeString);

}catch(ParseException e) {return null;

}

}/*** 将字符串转换为日期(包括时间)

*

*@paramdateString

* "dd/MM/yyyy HH:mm"格式的日期字符串

*@return日期*/

public staticDate convertSimpleToDateTime(String dateString) {try{return new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm")

.parse(dateString);

}catch(ParseException e) {return null;

}

}/*** 检查字符串是否为日期时间格式yyyy-MM-dd HH:mm:ss

*

*@paramdateString

*@returntrue=是;false=否*/

public static booleancheckDateTimeString(String dateTimeString) {return (convertToDateTime(dateTimeString) != null);

}/*** 获取月底

*

*@paramyear

* 年 4位年度

*@parammonth

* 月 1~12

*@return月底的Date对象。例如:2006-3-31 23:59:59.999*/

public static Date getMonthEnd(int year, intmonth) {

StringBuffer sb= new StringBuffer(10);

Date date;if (month < 12) {

sb.append(Integer.toString(year));

sb.append("-");

sb.append(month+ 1);

sb.append("-1");

date=convertToDate(sb.toString());

}else{

sb.append(Integer.toString(year+ 1));

sb.append("-1-1");

date=convertToDate(sb.toString());

}

date.setTime(date.getTime()- 1);returndate;

}/*** 获取月底

*

*@paramwhen

* 要计算月底的日期

*@return月底的Date对象。例如:2006-3-31 23:59:59.999*/

public staticDate getMonthEnd(Date when) {

Assert.notNull(when,"date must not be null !");

Calendar calendar=Calendar.getInstance();

calendar.setTime(when);int year =calendar.get(Calendar.YEAR);int month = calendar.get(Calendar.MONTH) + 1;returngetMonthEnd(year, month);

}/*** 日期格式转换为字符串

*

*@paramdate

*@return

*/

public staticString dateParseString(Date date) {

java.text.DateFormat df= newjava.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");returndf.format(date);

}/*** 日期格式转换为字符串

*

*@paramdate

*@return

*/

public staticString dateParseString(Date date, String format) {if(StringUtils.isEmpty(format)) {

format= "yyyy-MM-dd HH:mm:ss";

}

java.text.DateFormat df= newjava.text.SimpleDateFormat(format);returndf.format(date);

}/*** 日期格式转换为字符串

*

*@paramdate

*@return

*/

public staticString dateParseShortString(Date date) {

java.text.DateFormat df= new java.text.SimpleDateFormat("yyyy-MM-dd");returndf.format(date);

}/*** 活动专用

*@paramper 期次

*@return

*/

public static String getFormatDateString(intper){

java.text.DateFormat df= new java.text.SimpleDateFormat("yyyy年MM月dd日");return df.format(DateUtils.addMonths(newDate(), per));

}public staticString dateParseShortStringSecend(Date date) {

java.text.DateFormat df= new java.text.SimpleDateFormat("HH:mm:ss");returndf.format(date);

}public staticString dateParseShortStringHour(Date date) {

java.text.DateFormat df= new java.text.SimpleDateFormat("HH:mm");returndf.format(date);

}/*** 老带新用了下这个

*@return

*/

public staticString getThisTimeStr(){

java.text.DateFormat df= new java.text.SimpleDateFormat("MM-dd HH:mm");return df.format(newDate());

}/*** 获取给定日的最后一刻。

*

*@paramwhen

* 给定日

*@return最后一刻。例如:2006-4-19 23:59:59.999*/

public staticDate getDayEnd(Date when) {

Date date=truncate(when, Calendar.DATE);

date= addDays(date, 1);

date.setTime(date.getTime()- 1);returndate;

}/*** 获取给定日的第一刻。

*

*@paramwhen

* 给定日

*@return最后一刻。例如:2006-4-19 23:59:59.999*/

public staticDate getDay(Date when) {

Date date=truncate(when, Calendar.DATE);

date= addDays(date, -1);

date.setTime(date.getTime()+ 1);returndate;

}/*** 日期加法

*

*@paramwhen

* 被计算的日期

*@paramfield

* the time field. 在Calendar中定义的常数,例如Calendar.DATE

*@paramamount

* 加数

*@return计算后的日期*/

public static Date add(Date when, int field, intamount) {

Calendar calendar=Calendar.getInstance();

calendar.setTime(when);

calendar.add(field, amount);returncalendar.getTime();

}/*** 计算给定的日期加上给定的天数。

*

*@paramwhen

* 给定的日期

*@paramamount

* 给定的天数

*@return计算后的日期*/

public static Date addDays(Date when, intamount) {returnadd(when, Calendar.DAY_OF_YEAR, amount);

}/*** 计算给定的日期加上给定的分钟数。

*

*@paramwhen

* 给定的日期

*@paramamount

* 给定的分钟数

*@return计算后的日期*/

public static Date addMinutes(Date when, intamount) {returnadd(when, Calendar.MINUTE, amount);

}/*** 计算给定的日期加上给定的秒数。

*

*@paramwhen

* 给定的日期

*@paramamount

* 给定的秒数

*@return计算后的日期*/

public static Date addSeconds(Date when, intamount) {returnadd(when, Calendar.SECOND, amount);

}/*** 计算给定的日期加上给定的月数。

*

*@paramwhen

* 给定的日期

*@paramamount

* 给定的月数

*@return计算后的日期*/

public static Date addMonths(Date when, intamount) {returnadd(when, Calendar.MONTH, amount);

}/*** 获取当前时段:早上、上午、下午、晚上、凌晨

*

*@return当前时段*/@SuppressWarnings("deprecation")public staticString getTimePeriod() {

String period= "";

Date now=getCurrentDateTime();int hour =now.getHours();if (hour >= 0 && hour < 6) {

period= "凌晨";

}else if (hour >= 6 && hour < 8) {

period= "早上";

}else if (hour >= 8 && hour < 12) {

period= "上午";

}else if (hour >= 12 && hour < 18) {

period= "下午";

}else if (hour >= 18) {

period= "晚上";

}returnperiod;

}/***

*@paramdate

*@paramn

*@return

*/

public static Date getTimePriTenDay(Date date, intn) {

SimpleDateFormat df= new SimpleDateFormat("yyyy-MM-dd");return convertToDateTime(df.format(new Date(date.getTime() + n * 24

* 60 * 60 * 1000)));

}/*** 将Date对象类型转化为日期(2006-09-17 5:20:5)的字符串

*

*@paramDate

*@returnString*/

public staticString dateToString(Date date) {try{if (date != null)return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);

}catch(Exception e) {

e.printStackTrace();

}return null;

}/*** 判断当前日期是否在两个日期之间

*

*@paramstartDate

*@paramendDate

*@return

*/

public static booleanisTodayIn(String startDate, String endDate) {

Date today=DateUtils.parseDate(DateUtils

.dateParseShortString(newDate()));

Date sDate=DateUtils.parseDate(startDate);

Date eDate=DateUtils.parseDate(endDate);if (today.getTime() >=sDate.getTime()&& today.getTime() <=eDate.getTime())return true;return false;

}/*** 日期比较

*@paramdate1 date1>date2 true

*@paramdate2

*@return

*/

public static booleandateCompare(Date date1, String date2) {

Date date1_s=DateUtils.parseDate(DateUtils

.dateParseShortString(date1));

Date date2_s=DateUtils.parseDate(date2);if (date1_s.getTime() >=date2_s.getTime())return true;return false;

}public static booleandateCompare2(Date date1, String date2) {

Date date1_s=DateUtils.parseDate(DateUtils

.dateParseShortString(date1));

Date date2_s=DateUtils.parseDate(date2);if (date1_s.getTime() >date2_s.getTime())return true;return false;

}/*** 将String 类型的转化为日期格式(2006-09-17 5:20:5)

*

*@paramString

*@returnDate*/

public staticDate stringToDate(String dateStr) {try{if (dateStr != null)return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

.parse(dateStr);

}catch(Exception e) {

e.printStackTrace();

}return null;

}/*** 字符串转为时间类型

*

*@paramdateStr

*

*@returnDate*/

public static finalDate parseDate(String dateStr) {

SimpleDateFormat df= new SimpleDateFormat("yyyy-MM-dd");try{returndf.parse(dateStr);

}catch(ParseException e) {

e.printStackTrace();

}return null;

}public static finalDate parseDateByFormat(String dateStr, String format) {

SimpleDateFormat df= newSimpleDateFormat(format);try{returndf.parse(dateStr);

}catch(ParseException e) {

e.printStackTrace();

}return null;

}/*** 得到具体时间如:几天前;几小时前;几分钟前;几秒钟前

*

*@paramtime

* 传入一个Date类型的日期

*@return根据当天当时当秒解析出距离当天当时当秒的字符串 String*/

public staticString getTimeInterval(Date time) {

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try{

Long dateDiff= sdf.parse(sdf.format(newDate())).getTime()-sdf.parse(sdf.format(time)).getTime();

Long day= dateDiff / (24 * 60 * 60 * 1000);if (day > 0) {return day + "天前";

}

Long hour= dateDiff / (60 * 60 * 1000);if (hour > 0) {return hour + "小时前";

}

Long minute= dateDiff / (60 * 1000);if (minute > 0) {return minute + "分钟前";

}

Long second= dateDiff / 1000;return second + "秒前";

}catch(Exception e) {

e.printStackTrace();return "未知";

}

}/*** 由当前时间返回yyyy-mm-dd格式的日期字符串

*

*@returnString*/

public staticString getStringOfTodayDate() {

Date d= newDate();

SimpleDateFormat df= new SimpleDateFormat("yyyy-MM-dd");returndf.format(d);

}/***

*

*@returnString*/

public staticString getPzStartDate() {

Date d= DateUtils.addDays(new Date(), 1);

SimpleDateFormat df= new SimpleDateFormat("yyyy年MM月dd日");returndf.format(d);

}/***

*

*@returnString*/

public static String getPzEndDate(intper) {

Date d= DateUtils.add(DateUtils.addDays(new Date(), 1), Calendar.MONTH, per);

SimpleDateFormat df= new SimpleDateFormat("yyyy年MM月dd日");returndf.format(d);

}/***

*

*@returnString*/

public staticString getPzDate() {

Date d= newDate();

SimpleDateFormat df= new SimpleDateFormat("yyyy年MM月dd日");returndf.format(d);

}/*** 比较两日期(字符)的大小,日期格式为yyMMdd.

*

*@parambeginDate

*@paramendDate

*@returnboolean*/

public static final booleancompareDate(String beginDate, String endDate) {long begin = Integer.parseInt(beginDate.substring(0, 4)+ beginDate.substring(5, 7) + beginDate.substring(8, 10));long end = Integer.parseInt(endDate.substring(0, 4)+ endDate.substring(5, 7) + endDate.substring(8, 10));if (begin >end) {return false;

}else{return true;

}

}/*** 将Date对象类型转化为指定的格式字符串

*

*@paramdate

* 日期

*@paramformat

* 格式

*@returnString*/

public staticString dateToString(Date date, String format) {try{if (date != null)return newSimpleDateFormat(format).format(date);

}catch(Exception e) {

e.printStackTrace();

}return null;

}/*** 系统日期减去传入日期得到天数

*

*@paramdate1

* 传入日期

*@return天数 long*/

public static longsub(Date date1) {

Date d2= convertToDate(dateParseShortString(newDate()));

Date d1=convertToDate(dateParseShortString(date1));long day = (d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000);returnday;

}/*** 系统日期减去传入日期得到秒数

*

*@paramdate1

* 传入日期

*@return天数 long*/

public static longsubSeconds(Date date1) {return Math.abs((date1.getTime() - new Date().getTime()) / 1000);

}/*** 两个日期相减得到天数

*

*@paramdate1

* 传入日期

*@paramdate2

* 传入日期

*@return天数 long*/

public static longsub(Date date1, Date date2) {

Date d1=convertToDate(dateParseShortString(date1));

Date d2=convertToDate(dateParseShortString(date2));long day = (d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000);returnday;

}/*** 日期相减得到年数

*

*@paramdate1

* 相减的日期

*@return

*/

public static longsubDateGetYear(Date date1) {

Date d2= convertToDate(dateParseShortString(newDate()));

Date d1=convertToDate(dateParseShortString(date1));long day = (d2.getYear() -d1.getYear());return day + 1;

}/*** 计算两个日期间的月份

*

*@paramdate1

* 起始日期

*@paramdate2结束日期

*@return

*/

public static longsubDateGetMonth(Date date1, Date date2) {

DateCalculate culate=DateCalculate.calculate(date1, date2);returnculate.getDifferenceOfMonths();

}/*** 计算两个日期间的月份,不满一个月按一个月计算

*

*@paramdate1

* 起始日期

*@paramdate2结束日期

*@return

*/

public static longsubDateGetFullMonth(Date date1, Date date2) {

DateCalculate culate=DateCalculate.calculate(date1, date2);long month =culate.getDifferenceOfMonths();if (culate.getDifferenceOfDays() > 0)

month++;returnmonth;

}/*** 返回当前时间("yyyy-MM-dd HH:mm:ss")

*

*@return返回当前时间*/

public staticString getCurrentDateTimeStr() {//设置日期格式

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");return df.format(newDate());

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值