java 星期几、得周一、得周日、上周、下周、相差、日期工具类
生活随笔
收集整理的這篇文章主要介紹了
java 星期几、得周一、得周日、上周、下周、相差、日期工具类
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到教程。?
import org.apache.commons.lang3.StringUtils;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;/*** 日期工具類** @author silence* @version 2017/12/24*/ public class DateUtil {private static final String YYYY_MM_DD = "yyyy-MM-dd";public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");public static final SimpleDateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm:ss");public static final int DAYS_OF_ONE_WEEK = 7;/*** 查當(dāng)前日期是一周中的第幾天、星期幾* @return*/public static long getWhicthDay(Date today){Calendar cal = Calendar.getInstance();cal.setTime(today);// 1=Sunday,2=Monday,,,7=Saturday。return cal.get(Calendar.DAY_OF_WEEK);}/*** 判斷日期是否相等 年/月/日相等 就是相等了** @param day1* @param day2* @return*/public static boolean isDateEqualToday(Date day1, Date day2) {return day1.getYear() == day2.getYear()&& day1.getMonth() == day2.getMonth()&& day1.getDay() == day2.getDay();}/*** 計(jì)算距離baseDate 若干天的 日期* days=2 表示2天后* days=-1 一天前** @param baseDate 日期 null 表示當(dāng)前日期* @param days 日期* @return*/public static Date daysBetweenWeeks(Date baseDate, int days) {Calendar c = Calendar.getInstance();if (baseDate != null)c.setTime(baseDate);c.add(Calendar.DAY_OF_MONTH, days);return c.getTime();}public static java.sql.Date fromUtilDate(Date utilDate) {java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());return sqlDate;}// public static Date lastMonday() { // Date _7daysBefore = daysBetweenWeeks(null, -DAYS_OF_ONE_WEEK); // return mondayOfThisWeek(_7daysBefore); // } // // public static Date lastSunday() { // Date _7daysBefore = daysBetweenWeeks(null, -DAYS_OF_ONE_WEEK); // return sundayOfThisWeek(_7daysBefore); // }/*** 獲取某個(gè)日期對應(yīng)的 日期 的周一** @param theDate 某個(gè)日期 null的話,表示當(dāng)前日期* @return Date*/public static Date mondayOfThisWeek(Date theDate) {Calendar c = Calendar.getInstance();if (theDate != null) c.setTime(theDate);c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); // 獲取 周一return c.getTime();}/*** 獲取某個(gè)日期對應(yīng)的 日期 的周日** @param theDate 某個(gè)日期 null的話,表示當(dāng)前日期* 獲取當(dāng)前日期的周7,注意 日歷獲取的周期是* 周日,1,2,3,4,5,6 不是中國傳統(tǒng)的* 1,2,3,4,5,6,周日* 所以要加7* @return Date*/public static Date sundayOfThisWeek(Date theDate) {Calendar c = Calendar.getInstance();if (theDate != null) c.setTime(theDate);c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); // 獲取 周日c.add(Calendar.DAY_OF_MONTH, 7); // 獲取 中國意義上的 周日return c.getTime();}/*** 獲取某個(gè)日期對應(yīng)的 日期 的周日** @param theDate 某個(gè)日期 null的話,表示當(dāng)前日期* 獲取當(dāng)前日期的周7,注意 日歷獲取的周期是* 周日,1,2,3,4,5,6 不是中國傳統(tǒng)的* 1,2,3,4,5,6,周日* 所以要加7* @return Date*/public static Date getSundayOfThisWeek(Date theDate) {Calendar c = Calendar.getInstance();if (theDate != null) c.setTime(theDate);c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); // 獲取 周日c.add(Calendar.DAY_OF_MONTH, 7); // 獲取 中國意義上的 周日if(getWhicthDay(theDate)==1){c.add(Calendar.DATE, c.getFirstDayOfWeek() - 8);}return c.getTime();}/*** 字符串轉(zhuǎn)換為日期類型** @param dateString* @return*/public static Date stringToDate(String dateString) {try {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");return sdf.parse(dateString);} catch (ParseException e) {System.out.println(e.getMessage());}return null;}public static String dateToString(Date date) {try {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");return sdf.format(date);} catch (Exception e) {System.out.println(e.getMessage());}return date.toString();}/*** YYYY:MM:DD hh:mm:ss --->YYYY:MM:DD** @param date* @return*/public static Date timeToDate(Date date) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String s = sdf.format(date);try {return sdf.parse(s);} catch (ParseException e) {e.printStackTrace();}return null;}/*** 獲取某天當(dāng)前周的周一* @param date* @return*/public static Date getThisWeekMonday(Date date) {Calendar cal = Calendar.getInstance();cal.setTime(date);// 獲得當(dāng)前日期是一個(gè)星期的第幾天int dayWeek = cal.get(Calendar.DAY_OF_WEEK);if (1 == dayWeek) {cal.add(Calendar.DAY_OF_MONTH, -1);}// 設(shè)置一個(gè)星期的第一天,按中國的習(xí)慣一個(gè)星期的第一天是星期一cal.setFirstDayOfWeek(Calendar.MONDAY);// 獲得當(dāng)前日期是一個(gè)星期的第幾天int day = cal.get(Calendar.DAY_OF_WEEK);// 根據(jù)日歷的規(guī)則,當(dāng)前日期減去 星期幾與一個(gè)星期第一天的差值 即可計(jì)算當(dāng)前周期第一天cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);return cal.getTime();}/*** 獲取某天上周一的日期** @param date* @return*/public static Date geLastWeekMonday(Date date) {Calendar cal = Calendar.getInstance();cal.setTime(getThisWeekMonday(date));cal.add(Calendar.DATE, -7);return cal.getTime();}/*** 獲取某天下周一的日期** @param date* @return*/public static Date getNextWeekMonday(Date date) {Calendar cal = Calendar.getInstance();cal.setTime(getThisWeekMonday(date));cal.add(Calendar.DATE, 7);return cal.getTime();}/*** 獲取某天的前后幾天的日期** @param date* @param day :正數(shù)表示后幾天,負(fù)數(shù)表示前幾天* @return*/public static Date addDay(Date date, int day) {Calendar cal = Calendar.getInstance();cal.setTime(date);cal.add(Calendar.DATE, day);return cal.getTime();}/*** 添加時(shí)間** @param date* @param time hh:mm:ss* @return*/public static Date addTime(Date date, String time) {if (StringUtils.isEmpty(time)) return date;Calendar cd = Calendar.getInstance();cd.setTime(date);String[] times = time.split(":");//eg:["01","00","00"]int[] timeUnit = {Calendar.HOUR, Calendar.MINUTE, Calendar.SECOND};if (date != null) {for (int i = 0; i < times.length; i++) {cd.add(timeUnit[i], Integer.valueOf(times[i]));}}return cd.getTime();}}?
總結(jié)
以上是生活随笔為你收集整理的java 星期几、得周一、得周日、上周、下周、相差、日期工具类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ2356
- 下一篇: jquery.dataTables.mi