java中关于时间的一些常规操作

来源:互联网 发布:ipad课堂教学软件 编辑:程序博客网 时间:2024/06/04 21:17
package test2;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;/******************** * 时间工具类 * 1.将String类型的时间转化为Date类型 * 2.将Date类型的时间转化为String类型 * 3.获取当前系统时间格式化字符串 * 4.获取当前时间戳 * 5.判断传入的Date类型时间是否在当前系统时间之前 * 6.判断传入的Date类型时间是否在当前系统时间之后 * 7.判断传入的Date类型时间是否和当前系统时间相等 * 8. 获取两个时间间隔的天数 * 9.得到一个时间延后多少天之后的时间 * 10.判断是否润年 * 11.获取某个月的最后一天 * 12.判断两个日期是否在同一周 * 13.根据一个日期,返回是星期几的字符串 * @author Shenfd * */public class DateUtil {private DateUtil(){}static final String format1 = "yyyy-MM-dd HH:mm:ss";static final String format2 = "yyyy-MM-dd HH:mm:ss:SS";static final String format3 = "yyyy/MM/dd HH:mm:ss";static final String format4 = "yyyy/MM/dd HH:mm:ss:SS";static final String format5 = "yyyy年MM月dd日 HH时mm分ss秒";static final String format6 = "yyyy年MM月dd日 HH时mm分ss秒SS毫秒";static final String format7 = "yyyy-MM-dd";static final String format8 = "yyyy年MM月dd日";static final String format9 = "yyyyMMddHHmmssSS";/******************************* * 将String时间转化为Date类型 * @param stringTime  * 参数为String类型时间,格式[yyyy-MM-dd HH:mm:ss] * @return Date类型时间 * @throws ParseException  */public static Date stringParseToDate1(String stringTime) throws ParseException{DateFormat df = new SimpleDateFormat(format1);Date date = null;date = df.parse(stringTime);return date;}/******************************* * 将String时间转化为Date类型 * @param stringTime  * 参数为String类型时间,格式[yyyy-MM-dd HH:mm:ss:SS],参数精确到毫秒 * @return Date类型时间 * @throws ParseException  */public static Date stringParseToDate2(String stringTime) throws ParseException{DateFormat df = new SimpleDateFormat(format2);Date date = null;date = df.parse(stringTime);return date;}/******************************* * 将String时间转化为Date类型 * @param stringTime  * 参数为String类型时间,日期有斜/,格式[yyyy/MM/dd HH:mm:ss] * @return Date类型时间 * @throws ParseException  */public static Date stringParseToDate3(String stringTime) throws ParseException{DateFormat df = new SimpleDateFormat(format3);Date date = null;date = df.parse(stringTime);return date;}/******************************* * 将String时间转化为Date类型 * @param stringTime  * 参数为String类型时间,日期有斜/,格式[yyyy/MM/dd HH:mm:ss:SS],参数要精确到毫秒 * @return Date类型时间 * @throws ParseException  */public static Date stringParseToDate4(String stringTime) throws ParseException{DateFormat df = new SimpleDateFormat(format4);Date date = null;date = df.parse(stringTime);return date;} /******************************* * 将String时间转化为Date类型 * @param stringTime  * 参数为String类型时间,日期有斜/,格式[yyyy年MM月dd日 HH24时mm分ss秒] * @return Date类型时间 * @throws ParseException  */public static Date stringParseToDate5(String stringTime) throws ParseException{DateFormat df = new SimpleDateFormat(format5);Date date = null;date = df.parse(stringTime);return date;}/******************************* * 将String时间转化为Date类型 * @param stringTime  * 参数为String类型时间,日期有斜/,格式[yyyy年MM月dd日 HH24时mm分ss秒SS毫秒] * @return Date类型时间 * @throws ParseException  */public static Date stringParseToDate6(String stringTime) throws ParseException{DateFormat df = new SimpleDateFormat(format6);Date date = null;date = df.parse(stringTime);return date;}/******************************* * 将String时间转化为Date类型 * @param stringTime  * 参数为String类型时间,格式[yyyy-MM-dd] * @return Date类型时间 * @throws ParseException  */public static Date stringParseToDate7(String stringTime) throws ParseException{DateFormat df = new SimpleDateFormat(format7);Date date = null;date = df.parse(stringTime);return date;}/******************************* * 将String时间转化为Date类型 * @param stringTime  * 参数为String类型时间,格式[yyyy年MM月dd日] * @return Date类型时间 * @throws ParseException  */public static Date stringParseToDate8(String stringTime) throws ParseException{DateFormat df = new SimpleDateFormat(format7);Date date = null;date = df.parse(stringTime);return date;}/******************* * 获取当前系统时间 * @return String类型时间,格式[yyyy-MM-dd HH:mm:ss] */public static String getCurrentDateString1(){return new SimpleDateFormat(format1).format(new Date());}/******************* * 获取当前系统时间 * @return String类型时间,精确到毫秒,格式[yyyy-MM-dd HH:mm:ss:SS] */public static String getCurrentDateString2(){return new SimpleDateFormat(format2).format(new Date());}/******************* * 获取当前系统时间,日期加斜/ * @return String类型时间,格式[yyyy/MM/dd HH:mm:ss] */public static String getCurrentDateString3(){return new SimpleDateFormat(format3).format(new Date());}/******************* * 获取当前系统时间,精确到毫秒,日期加斜/ * @return String类型时间,格式[yyyy/MM/dd HH:mm:ss:SS] */public static String getCurrentDateString4(){return new SimpleDateFormat(format4).format(new Date());}/******************* * 获取当前系统时间 * @return String类型时间,格式[yyyy年MM月dd日 HH时mm分ss秒] */public static String getCurrentDateString5(){return new SimpleDateFormat(format5).format(new Date());}/******************* * 获取当前系统时间 * @return String类型时间,精确到毫秒,格式[yyyy年MM月dd日 HH时mm分ss秒SS毫秒] */public static String getCurrentDateString6(){return new SimpleDateFormat(format6).format(new Date());}/******************* * 获取当前系统时间 * @return String类型时间,精确到毫秒,格式[yyyy-MM-dd] */public static String getCurrentDateString7(){return new SimpleDateFormat(format7).format(new Date());}/******************* * 获取当前系统时间 * @return String类型时间,精确到毫秒,格式[yyyy年MM月dd日] */public static String getCurrentDateString8(){return new SimpleDateFormat(format8).format(new Date());}/**************************** * 将Date类型日期格式化为String类型 * @param date 参数为Date类型 * @return 返回String类型时间,格式[yyyy-MM-dd HH:mm:ss] */public static String dateParseToString1(Date date){DateFormat df = new SimpleDateFormat(format1);return df.format(date);}/**************************** * 将Date类型日期格式化为String类型 * @param date 参数为Date类型 * @return 返回String类型时间,格式[yyyy-MM-dd HH:mm:ss:SS] */public static String dateParseToString2(Date date){DateFormat df = new SimpleDateFormat(format2);return df.format(date);}/**************************** * 将Date类型日期格式化为String类型 * @param date 参数为Date类型 * @return 返回String类型时间,格式[yyyy/MM/dd HH:mm:ss] */public static String dateParseToString3(Date date){DateFormat df = new SimpleDateFormat(format3);return df.format(date);}/**************************** * 将Date类型日期格式化为String类型 * @param date 参数为Date类型 * @return 返回String类型时间,格式[yyyy/MM/dd HH:mm:ss:SS] */public static String dateParseToString4(Date date){DateFormat df = new SimpleDateFormat(format4);return df.format(date);}/**************************** * 将Date类型日期格式化为String类型 * @param date 参数为Date类型 * @return 返回String类型时间,格式[yyyy年MM月dd日 HH时mm分ss秒] */public static String dateParseToString5(Date date){DateFormat df = new SimpleDateFormat(format5);return df.format(date);}/**************************** * 将Date类型日期格式化为String类型 * @param date 参数为Date类型 * @return 返回String类型时间,格式[yyyy年MM月dd日 HH时mm分ss秒SS毫秒] */public static String dateParseToString6(Date date){DateFormat df = new SimpleDateFormat(format6);return df.format(date);}/**************************** * 将Date类型日期格式化为String类型 * @param date 参数为Date类型 * @return 返回String类型时间,格式[yyyy-MM-dd] */public static String dateParseToString7(Date date){DateFormat df = new SimpleDateFormat(format7);return df.format(date);}/**************************** * 将Date类型日期格式化为String类型 * @param date 参数为Date类型 * @return 返回String类型时间,格式[yyyy年MM月dd日] */public static String dateParseToString8(Date date){DateFormat df = new SimpleDateFormat(format8);return df.format(date);}/*********************** * 获取当前时间戳 格式yyyyMMddHHmmssSS * @return String类型时间戳 */public static String getTimeStampString(){return new SimpleDateFormat(format9).format(new Date());}/************************* * 判断传入的Date类型时间是否在当前系统时间之前 * @param date 和当前系统时间比较的时间 * @return bollean */public static boolean isBoforeCurrentDate(Date date){return (date.getTime()<(new Date().getTime())) ? true:false;}/************************* * 判断传入的Date类型时间是否在当前系统时间之后 * @param date 和当前系统时间比较的时间 * @return boolean */public static boolean isAfterCurrentDate(Date date){return (date.getTime()>(new Date().getTime())) ? true:false;}/************************* * 判断传入的Date类型时间是否和当前系统时间相等 * @param date 和当前系统时间比较的时间 * @return boolean */public static boolean isEqualsCurrentDate(Date date){return (date.getTime()==(new Date().getTime())) ? true:false;}/************************* * 获取两个时间间隔的天数,如果返回值大于0,则表示startDate>endDate * @param startDate Date类型 * @param endDate Date类型 * @return 间隔天数 */public static int getSeparateDay(Date startDate,Date endDate){return (int) ((startDate.getTime()-endDate.getTime())/(24 * 60 * 60 * 1000));}/************************* * 获取两个时间间隔的天数,如果返回值大于0,则表示startDate>endDate * @param startDate String类型 * @param endDate String类型 * @return 间隔天数 * @throws ParseException  */public static int getSeparateDay(String startDate, String endDate) throws ParseException{DateFormat df = new SimpleDateFormat(format7);return (int) ((df.parse(startDate).getTime()-df.parse(endDate).getTime())/(24 * 60 * 60 * 1000));}/**************************** * 得到一个时间延后多少天之后的时间 * @param nowDay String类型的时间 * @param delay 前移或后延的天数 * @return 返回String类型时间 * @throws ParseException */public static String getMoveDay(String nowDay, int delay) throws ParseException{DateFormat df = new SimpleDateFormat(format7);Date d = stringParseToDate7(nowDay);long myTime = (d.getTime() / 1000) + delay * 24 * 60 * 60;d.setTime(myTime * 1000);return df.format(d);}/**************************** * 得到当前时间延后多少天之后的时间 * @param nowDay String类型的时间 * @param delay 前移或后延的天数 * @return 返回Date类型时间 * @throws ParseException */public static Date getMoveDay(int delay) throws ParseException{DateFormat df = new SimpleDateFormat(format7);Date d = new Date();long myTime = (d.getTime() / 1000) + delay * 24 * 60 * 60;d.setTime(myTime * 1000);return df.parse(df.format(d));}/********************* * 判断是否润年 * @param date Date类型时间 * @return boolean */public static boolean isLeapYear(Date date) {GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();gc.setTime(date);int year = gc.get(Calendar.YEAR);if ((year % 400) == 0)return true;else if ((year % 4) == 0) {if ((year % 100) == 0)return false;elsereturn true;} elsereturn false;}/********************* * 判断是否润年 * @param date String类型时间 * @return boolean * @throws ParseException  */public static boolean isLeapYear(String date) throws ParseException {DateFormat df = new SimpleDateFormat(format7);Date d = df.parse(date);GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();gc.setTime(d);int year = gc.get(Calendar.YEAR);if ((year % 400) == 0)return true;else if ((year % 4) == 0) {if ((year % 100) == 0)return false;elsereturn true;} elsereturn false;}/*********************** * 获取某个月的最后一天 * @param date String类型的时间 * @return String日期,返回格式:[yyyy-MM-dd] * @throws ParseException */public static String getEndDateOfMonth(String date) throws ParseException {// yyyy-MM-ddString str = date.substring(0, 8);String month = date.substring(5, 7);int mon = Integer.parseInt(month);if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {str += "31";} else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {str += "30";} else {if (isLeapYear(date)) {str += "29";} else {str += "28";}}return str;}/******************* * 判断两个日期是否在同一周 * @param date1 Date类型的时间 * @param date2 Date类型的时间 * @return boolean */public static boolean isSameWeekDates(Date date1, Date date2) {Calendar cal1 = Calendar.getInstance();Calendar cal2 = Calendar.getInstance();cal1.setTime(date1);cal2.setTime(date2);int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);if (0 == subYear) {if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))return true;} else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {// 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))return true;} else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))return true;}return false;}/************** * 根据一个日期,返回是星期几的字符串 * @param date Date类型的日期 * @return */public static String getWeekStr(Date date){Calendar c = Calendar.getInstance();c.setTime(date);String str=new SimpleDateFormat("EEEE").format(c.getTime());if("1".equals(str)){str = "星期日";}else if("2".equals(str)){str = "星期一";}else if("3".equals(str)){str = "星期二";}else if("4".equals(str)){str = "星期三";}else if("5".equals(str)){str = "星期四";}else if("6".equals(str)){str = "星期五";}else if("7".equals(str)){str = "星期六";}return str;}}


最后,欢迎访问风格清新简洁的轻博客网站[指尖一刻]



原创粉丝点击