java 日期类封装_java基本日期相关方法封装

这是一个Java日期处理的工具类,包含日期与字符串之间的转换、日期的比较、判断是否为同一天、获取星期等常用方法。例如:日期格式化、字符串转日期、日期转字符串、时间比较等。
摘要由CSDN通过智能技术生成

java基本日期相关方法封装类

html

package com.common;

import java.sql.Timestamp;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import org.apache.commons.lang.time.DateUtils;

public class DateUtil {

public final static String PATTERN_TIME = "yyyy-MM-dd HH:mm:ss";

public final static String PATTERN_DATE = "yyyy-MM-dd";

public final static String PATTERN_DATE2 = "yyyyMMdd";

//---------------------PATTERN_DATE2形式字符串转换---------------------//

/**

* 日期格式转换(日期转字符串)

* @param date

* @return PATTERN_DATE2格式字符串

*/

public static String convertFormOfDate(Date date){

String dateStr = formatDate(date);

dateStr = dateStr.replace("-", "");

return dateStr;

}

/**

* 日期格式转换(字符串转字符串)

* @param date

* @return PATTERN_DATE2格式字符串

*/

public static String convertFormOfDate(String date){

String dateStr = date.replace("-", "");

return dateStr;

}

//---------------------长时间与短期转换(时间转时间)---------------------//

/**

* 长时间转短期

* @param longDate

* @return Date shortDate(eg:2017-09-10)

*/

public static Date getDateShort(Date longDate){

String dateStr = formatDate(longDate);

Date shortDate = (java.util.Date)java.sql.Date.valueOf(dateStr);

return shortDate;

}

/**

* 短期转长时间

* @param shortDate

* @returnDate Date longDate

*/

public static Date getDateLong(Date shortDate){

String dateStr = formatTime(shortDate);

Date longDate = parseTime(dateStr);

return longDate;

}

//------------------------字符串转日期(会抛异常)------------------------//

/**

* 日期字符串解析(字符串转日期)

* @param date

* @return

*/

public static Date parseDate(String date) {

try {

SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_DATE);

return sdf.parse(date);

} catch (ParseException e) {

throw new RuntimeException("parse date failed for: " + date);

}

}

/**

* 时间字符串解析(字符串转日期)

* @param time

* @return

*/

public static Date parseTime(String time) {

try {

SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_TIME);

return sdf.parse(time);

} catch (ParseException e) {

throw new RuntimeException("parse date failed for: " + time);

}

}

//----------------------------日期转字符串----------------------------//

/**

* 日期格式化 pattern(日期转字符串)

* @param date

* @param pattern

* @return

*/

public static String formatDate(Date date, String pattern) {

SimpleDateFormat sdf = new SimpleDateFormat(pattern);

return sdf.format(date);

}

/**

* 日期格式化 (日期转字符串)

* @param date

* @return PATTERN_DATE

*/

public static String formatDate(Date date) {

SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_DATE);

return sdf.format(date);

}

/**

* 日期格式化 (日期转字符串)

* @param date

* @return PATTERN_TIME

*/

public static String formatTime(Date date) {

SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_TIME);

return sdf.format(date);

}

//--------------------------日期相关经常使用方法封装--------------------------//

/**

* 比较时间字符串

* @param t1

* @param t2

* @return -1/1/0

*/

public static int compareTimeStr(String t1, String t2) {

try {

SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_TIME);

Date d1 = sdf.parse(t1);

Date d2 = sdf.parse(t2);

if(d1.before(d2)) return -1;

if(d1.after(d2)) return 1;

return 0;

} catch (ParseException e) {

throw new IllegalArgumentException("Illegal arguement for time str:" + t1 + ", " + t2);

}

}

/**

* 返回时间字符串对应的日期应该是周几

* @param timeStr

* @return

*/

public static String getDayOfWeek(String timeStr) {

try {

SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_TIME);

Date date = sdf.parse(timeStr);

Calendar cal = Calendar.getInstance();

cal.setTime(date);

int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);

switch(dayOfWeek) {

case 1 : return "周日";

case 2 : return "周一";

case 3 : return "周二";

case 4 : return "周三";

case 5 : return "周四";

case 6 : return "周五";

case 7 : return "周六";

default : throw new IllegalArgumentException();

}

} catch (ParseException e) {

throw new RuntimeException(e);

}

}

/**

* 判断时间字符串是不是今天

* @param timeStr

* @return

*/

public static boolean isToday(String timeStr) {

Date date = parseTime(timeStr);

boolean isToday = DateUtils.isSameDay(date, new Date());

return isToday;

}

//------------------------------测试类------------------------------//

public static void main(String[] args) {

/* 获取系统当前时间(长时间格式 2017-09-07 16:36:53.289) */

Date date = new Timestamp(System.currentTimeMillis());

/* Fri Sep 08 13:22:04 CST 2017 */

Date date2 = new Date();

/* Fri Sep 08 13:22:04 CST 2017 */

Date date3 = new Date(System.currentTimeMillis());

System.out.println(formatDate(date2));

System.out.println(formatTime(date3));

String timeStr = date.toString();

isToday(timeStr);

getDayOfWeek(timeStr);

convertFormOfDate(date2);

convertFormOfDate("2017-09-08");

Date shortDate = getDateShort(date2);

Date longDate = getDateLong(shortDate);

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值