JAVA Date 工具类 常用

来源:互联网 发布:数据库管理安全 编辑:程序博客网 时间:2024/06/05 05:20

相信大家在写代码的过程中,会经常遇到日期和字符串之间的格式转换和求日期的需求。

因此我今天整理了一下普遍常用的一些方法,希望可以帮助大家。如果有不对的地方希望指正,有遗漏也请留言提出。

package slpcb;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;/** * * 项目名称:testClass        * 类名称:DateUtils    * 类描述:* 创建人:Jie.xiaojun* 创建时间:2017-12-4 下午04:20:02 */public class DateUtils {/** * 字符串格式:yyyy-MM-dd HH:mm:ss.sss */public static final String formatter_yyyyMMddHHmmsssss = "yyyy-MM-dd HH:mm:ss.sss";/** * 字符串格式:yyyy-MM-dd HH:mm:ss */public static final String formatter_yyyyMMddHHmmss = "yyyy-MM-dd HH:mm:ss";/** * 字符串格式:yyyy-MM-dd HH:mm */public static final String formatter_yyyyMMddHHmm = "yyyy-MM-dd HH:mm";/** * 字符串格式:yyyy-MM-dd */public static final String formatter_yyyyMMdd = "yyyy-MM-dd";/** * 字符串格式:yyyy-MM */public static final String formatter_yyyyMM = "yyyy-MM";/** * 字符串格式:yyyy */public static final String formatter_yyyy = "yyyy";/** * 字符串格式:MM-dd */public static final String formatter_MMdd = "MM-dd";/** * 字符串格式:HH:mm:ss */public static final String formatter_HHmmss = "HH:mm:ss";/** * 字符串格式:HH:mm */public static final String formatter_HHmm = "HH:mm";/** * 字符串格式:返回星期X(一、二、三、四、五、六、日) */public static final String formatter_EEEE = "EEEE";public static void main(String args[]){//System.out.println(dateToString(new Date(), formatter_yyyyMMddHHmmss));//System.out.println(stringtoDate("2017-10-01 12:00", formatter_yyyyMMddHHmm));//System.out.println(getCurrentDate(formatter_yyyyMMddHHmmss));//System.out.println(getFirstDayOfMonth(new Date(), formatter_yyyyMMddHHmmss, 0));//System.out.println(getFirstDayOfMonth(new Date(), formatter_yyyyMMddHHmmss, -12));//System.out.println(getFirstDayOfMonth(new Date(), formatter_yyyyMMddHHmmss, 1));//System.out.println(getLastDayOfMonth(new Date(), formatter_yyyyMMddHHmmss, 0));//System.out.println(getLastDayOfMonth(new Date(), formatter_yyyyMMddHHmmss, -12));//System.out.println(getLastDayOfMonth(new Date(), formatter_yyyyMMddHHmmss, 1));//System.out.println(getLastDayOfMonth(new Date(), formatter_yyyyMMddHHmmss,2));//System.out.println(getHourByDate(date));//System.out.println(getDayByDate(date));//System.out.println(getMonthByDate(date));//System.out.println(getYearByDate(date));//System.out.println(daysBetween("2017-11-06 23:59:59","2017-11-07 00:00:00",formatter_yyyyMMdd));//System.out.println(minutesBetweenFloat("2017-11-07 23:57:59","2017-11-07 23:58:00",formatter_yyyyMMddHHmmss));//System.out.println(minutesBetweenInt("2017-11-07 23:57:00","2017-11-07 23:58:00",formatter_yyyyMMddHHmmss));//System.out.println(hoursBetween("2017-11-07 22:58:00", "2017-11-07 23:57:00", formatter_yyyyMMddHHmmss));//System.out.println(getNewDateStr("2017-10-31 01:00", formatter_yyyyMMddHHmm, 500, "day"));}/** * @Description: 将日期转换为指定格式的字符串 * @param @param date * @param @param format * @param @return    * @return String   * @author Jie.xiaojun * @date 2017-12-4  下午03:58:17 */public static String dateToString(java.util.Date date, String format){String result = "";SimpleDateFormat formater = new SimpleDateFormat(format);try {result = formater.format(date);} catch (Exception e) {}return result;}/** *  * @Description: 将指定格式的字符串转换为日期 * @param dateStr * @param format * @return java.util.Date   * @author Jie.xiaojun * @date 2017-12-4  下午04:18:06 */public static java.util.Date stringtoDate(String dateStr, String format) {SimpleDateFormat formater = new SimpleDateFormat(format);try {formater.setLenient(false);return formater.parse(dateStr);} catch (Exception e) {return null;}}/** *  * @Description: 获取当前时间的指定格式的字符串 * @param format * @return String   * @author Jie.xiaojun * @date 2017-12-4  下午05:22:04 */public static String getCurrentDate(String format) {return dateToString(new Date(), format);}/** *  * @Description: 获取给定时间第几个月第一天的指定格式字符串 * @param date * @param format * @param month * @return String   * @author Jie.xiaojun * @date 2017-12-5  上午08:18:27 */public static String getFirstDayOfMonth(Date date, String format, int month) {Calendar cal = Calendar.getInstance();cal.setTime(date);cal.add(Calendar.MONTH, month);cal.set(Calendar.DATE, 1);cal.set(Calendar.HOUR_OF_DAY, 0);cal.set(Calendar.MINUTE, 0);cal.set(Calendar.SECOND, 0);return dateToString(cal.getTime(), format);}/** *  * @Description: 获取给定时间第几个月最后一天的指定格式字符串 * @param date * @param format * @return String   * @author Jie.xiaojun * @date 2017-12-5  上午08:29:48 */public static String getLastDayOfMonth(Date date, String format,int month) {Calendar cal = Calendar.getInstance();cal.setTime(date);cal.set(Calendar.DATE, 1);cal.add(Calendar.MONTH, 1);cal.add(Calendar.DATE, -1);cal.add(Calendar.MONTH, month);cal.set(Calendar.HOUR_OF_DAY, 23);cal.set(Calendar.MINUTE, 59);cal.set(Calendar.SECOND, 59);return dateToString(cal.getTime(), format);}/** *  * @Description: 求指定日期的小时数(0到23) * @param date * @return int   * @author Jie.xiaojun * @date 2017-12-5  上午08:51:03 */public static int getHourByDate(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);return calendar.get(Calendar.HOUR_OF_DAY);}/** *  * @Description: 求指定日期是一个月中第几天(1到31) * @param date * @return int   * @author Jie.xiaojun * @date 2017-12-5  上午08:46:32 */public static int getDayByDate(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);return calendar.get(Calendar.DATE);}/** *  * @Description: 求指定日期是一年中第几月(1到12) * @param date * @return int   * @author Jie.xiaojun * @date 2017-12-5  上午08:48:39 */public static int getMonthByDate(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);return calendar.get(Calendar.MONTH) + 1;}/** *  * @Description: 求指定日期的年 * @param date * @return int   * @author Jie.xiaojun * @date 2017-12-5  上午08:49:50 */public static int getYearByDate(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);return calendar.get(Calendar.YEAR);}/** *  * @Description: 返回两个指定字符串格式的日期相差天数 * @param startDate * @param endDate * @param format * @return int   * @author Jie.xiaojun * @date 2017-12-5  上午09:30:58 */public static int daysBetween(String startDate,String endDate,String format){           Calendar cal = Calendar.getInstance();            cal.setTime(stringtoDate(startDate, format));            long time1 = cal.getTimeInMillis();                         cal.setTime(stringtoDate(endDate, format));        long time2 = cal.getTimeInMillis();                 long between_days=Math.abs((time2-time1)/(1000*3600*24));             return Integer.parseInt(String.valueOf(between_days));     }  /** *  * @Description: 获取两个时间之间的小时差(时间格式必须是yyyy-MM-dd HH yyyy-MM-dd HH:mm yyyy-MM-dd HH:mm:ss yyyy-MM-dd HH:mm:ss.sss) * @param startDate * @param endDate * @param format * @return float   * @author Jie.xiaojun * @date 2017-12-5  上午10:06:35 */ public static float hoursBetween(String startDate,String endDate,String format){    Calendar cal = Calendar.getInstance();     cal.setTime(stringtoDate(startDate, format));             long time1 = cal.getTimeInMillis();                          cal.setTime(stringtoDate(endDate, format));         long time2 = cal.getTimeInMillis();                  float between_hours=(float) ((time2-time1)/(1000*3600.0));              return between_hours;    }/** *  * @Description: 获取两个时间之间的分钟差(时间格式必须是yyyy-MM-dd HH:mm yyyy-MM-dd HH:mm:ss yyyy-MM-dd HH:mm:ss.sss) * @param startDate * @param endDate * @param format * @return float   * @author Jie.xiaojun * @date 2017-12-5  上午10:04:11 */public static float minutesBetweenFloat(String startDate,String endDate,String format){   Calendar cal = Calendar.getInstance();            cal.setTime(stringtoDate(startDate, format));            long time1 = cal.getTimeInMillis();                         cal.setTime(stringtoDate(endDate, format));        long time2 = cal.getTimeInMillis();               float between_minutes=(float) ((time2-time1)/(1000*60.0));             return between_minutes;       }  /** *  * @Description: 获取两个时间之间的分钟差(时间格式必须是yyyy-MM-dd HH:mm yyyy-MM-dd HH:mm:ss yyyy-MM-dd HH:mm:ss.sss) * @param startDate * @param endDate * @param format * @return int   * @author Jie.xiaojun * @date 2017-12-5  上午10:02:59 */public static int minutesBetweenInt(String startDate,String endDate,String format){   Calendar cal = Calendar.getInstance();            cal.setTime(stringtoDate(startDate, format));            long time1 = cal.getTimeInMillis();                         cal.setTime(stringtoDate(endDate, format));        long time2 = cal.getTimeInMillis();               long between_minutes=Math.abs((time2-time1)/(1000*60));              return Integer.parseInt(String.valueOf(between_minutes));    }  /** *  * @Description: 求指定字符串格式的天数或月份加减 * @param dateStr  * @param format  常用格式:yyyy-MM-dd HH:mm:ss&&yyyy-MM-dd * @param counts * @param type  month or day * @return String   * @author Jie.xiaojun * @date 2017-12-5  上午10:14:25 */ public static String getNewDateStr(String dateStr,String format,int counts,String type){   Calendar cal = Calendar.getInstance();    cal.setTime(stringtoDate(dateStr, format)); if(type!=null&&type.equals("day")){cal.add(Calendar.DAY_OF_YEAR, counts);}if(type!=null&&type.equals("month")){cal.add(Calendar.MONTH, counts);}String  newDateStr= dateToString(cal.getTime(), format);return  newDateStr;    }   /** *  * @Description: 比较字符串是否和格式完全相同 * @param str * @param format * @return boolean   * @author Jie.xiaojun * @date 2017-12-4  下午05:07:09 */public static boolean isSameFormat(String str,String format) { boolean convertSuccess=true; SimpleDateFormat formater = new SimpleDateFormat(format); try {formater.setLenient(false); try {formater.parse(str);} catch (java.text.ParseException e) {convertSuccess=false;} } catch (ParseException e) {convertSuccess=false;}return convertSuccess;}/** *  * @Description: 比较字符串是否和格式类似相同 * @param str * @param format * @return boolean   * @author Jie.xiaojun * @date 2017-12-4  下午05:07:09 */public static boolean isLikeFormat(String str,String format) { boolean convertSuccess=true; SimpleDateFormat formater = new SimpleDateFormat(format); try {formater.setLenient(true); try {formater.parse(str);} catch (java.text.ParseException e) {convertSuccess=false;} } catch (ParseException e) {convertSuccess=false;}return convertSuccess;} }


原创粉丝点击