1、51CTO下载Java时间操作总结代码版直接在main函数中测试方法即可import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;import java.util.Locale;import org.tulip.StringUtil;public class TimeUtils extends mons.lang.time.Dat
2、eUtils public static final SimpleDateFormat dateFormat = new SimpleDateFormat(yyyy-MM-dd HHmmss); public static final SimpleDateFormat dateFormatHiddenHour = new SimpleDateFormat(yyyy-MM-dd); public static final String getFormatedNowTime() return dateFormat.format(new Date(); 格式化时间(yyyy-MM-dd HHmmss
3、) param date return public static final String getFormatedTime(Date date) return dateFormat.format(date); 格式化时间 param date return public static final String getFormatedTime(SimpleDateFormat dateFormat,Date date) return dateFormat.format(date); 格式化时间(yyyy-MM-dd) param date return public static final
4、String getFormatedTimeHiddenHour(Date date) return dateFormatHiddenHour.format(date); 长整型时间转换(yyyy-MM-dd HHmmss) param timestamp return public static final String getFormatedTime(Long timestamp) Date date = new Date(timestamp); return dateFormat.format(date); 显示完整时间 public static String getRecentDat
5、eString(int offset) offset 与当前日期的偏移量 如-1代表昨天 Date date = new Date(); date = new Date(date.getTime() + offset 86400000); return dateFormat.format(date); public static String getRecentDateString(Date date,int offset) offset 与当前日期的偏移量 如-1代表昨天 date = new Date(date.getTime() + offset 86400000); return da
6、teFormat.format(date); 只显示年月日部份 public static String getRecentDateExcludeHourString(int offset) offset 与当前日期的偏移量 如-1代表昨天 Date date = new Date(); date = new Date(date.getTime() + offset 86400000); return dateFormatHiddenHour.format(date); public static String getRecentDateExcludeHourString(String str
7、,int offset) throws ParseException offset 与当前日期的偏移量 如-1代表昨天 Date date = dateFormatHiddenHour.parse(str); date = new Date(date.getTime() + offset 86400000); return dateFormatHiddenHour.format(date); public static String getRecentDateFormatString(SimpleDateFormat dateFormat,String str,int offset) thro
8、ws ParseException offset 与当前日期的偏移量 如-1代表昨天 Date date = dateFormat.parse(str); date = new Date(date.getTime() + offset 86400000); return dateFormat.format(date); STRING日期转化为DATE型 param sDt return throws ParseException public static Date stringToDate(String sDt) throws ParseException return dateFormat
9、.parse(sDt); public static Date stringToDateExcludeHour(String sDt) throws ParseException return dateFormatHiddenHour.parse(sDt); public static Date stringToFormatDate(SimpleDateFormat dateFormat,String sDt) throws ParseException return dateFormat.parse(sDt); 返回两个时间差,毫秒 param now param returnDate re
10、turn public static long daysBetween(Date now, Date returnDate) Calendar cNow = Calendar.getInstance(); Calendar cReturnDate = Calendar.getInstance(); cNow.setTime(now); cReturnDate.setTime(returnDate); setTimeToMidnight(cNow); setTimeToMidnight(cReturnDate); long todayMs = cNow.getTimeInMillis(); lo
11、ng returnMs = cReturnDate.getTimeInMillis(); long intervalMs = todayMs - returnMs; return intervalMs; 毫秒转成实际天数 param intervalMs return public static int millisecondsToDays(long intervalMs) return (int) (intervalMs (1000 86400); 设置时间从0开始 param calendar public static void setTimeToMidnight(Calendar ca
12、lendar) calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); 月份的最后一天 param ymStr 只包含年和月的字符串 return public static int getLastDayOfMonth(String ymStr) ymStr = StringUtils.getFormatDateStr(ymStr); int year = Integer.parseInt(ymStr.substring(0,ymStr.
13、indexOf(-); int month = Integer.parseInt(ymStr.substring(ymStr.indexOf(-)+1); Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, month-1); return c.getActualMaximum(Calendar.DAY_OF_MONTH); 月份的最后一天 param year param month return public static int getLastDayOfMonth(i
14、nt year, int month) Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, month); c.set(Calendar.DATE, 1); c.add(Calendar.DATE, -1); System.out.println(c.get(Calendar.DATE)+_+c.get(Calendar.MONTH); return c.getActualMaximum(Calendar.DAY_OF_MONTH); 月份的第一天 param year p
15、aram month return public static int getFirstDayOfMonth(int year, int month) Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, month-1); return (c.getActualMinimum(Calendar.DAY_OF_MONTH); 两个时间相差的月份 param begin param end return public static int getDiffMonth(String
16、 begin, String end) try SimpleDateFormat myFormatter = new SimpleDateFormat(yyyy-MM-dd); java.util.Date date1 = myFormatter.parse(end); java.util.Date date2 = myFormatter.parse(begin); int y1 = (date1.getYear() - date2.getYear(); int m2 = y1 12 + (date1.getMonth() - date2.getMonth(); return m2; catc
17、h (Exception e) return 0; 计算两个日期相隔的天数 public static int getDiffDay(String firstString,String secondString) SimpleDateFormat df=new SimpleDateFormat(yyyy-MM-dd); Date firstDate=null; Date secondDate=null; try firstDate=df.parse(firstString); secondDate=df.parse(secondString); catch(Exception e) 日期型字符
18、串格式错误 int nDay=(int)(secondDate.getTime()-firstDate.getTime()(2460601000); return nDay; 日期加法 param when 被计算的日期 param field the time field. 在Calendar中定义的常数,例如Calendar.DATE param amount 加数 return 计算后的日期 public static Date add(Date when, int field, int amount) Calendar calendar = Calendar.getInstance()
19、; calendar.setTime(when); calendar.add(field,amount); return calendar.getTime(); 计算给定的日期加上给定的天数。 param when 给定的日期 param amount 给定的天数 return 计算后的日期 public static Date addDays(Date when, int amount) return add(when,Calendar.DAY_OF_YEAR,amount); 计算给定的日期加上给定的月数。 param when 给定的日期 param amount 给定的月数 retur
20、n 计算后的日期 public static Date addMonths(Date when, int amount) return add(when,Calendar.MONTH,amount); 获取月底 param year 年 4位年度 param month 月 112 return 月底的Date对象。例如:2006-3-31 public static Date getMonthEnd(int year, int month) StringBuffer sb = new StringBuffer(10); Date date; if (month12) sb.append(In
21、teger.toString(year); sb.append(-); sb.append(month+1); sb.append(-1); date = switchStringToDate(sb.toString(); else sb.append(Integer.toString(year+1); sb.append(-1-1); date = switchStringToDate(sb.toString(); date.setTime(date.getTime() - 1); return date; 获取月底 param when 要计算月底的日期 return 月底的Date对象。
22、例如:2006-3-31 public static Date getMonthEnd(Date when) Calendar calendar = Calendar.getInstance(); calendar.setTime(when); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH)+1; return getMonthEnd(year,month); 获取给定日的最后一刻。 param when 给定日 return 最后一刻。例如:2006-4-19 235959.99
23、9 public static Date getDayEnd(Date when) Date date = truncate(when,Calendar.DATE); date = addDays(date,1); date.setTime(date.getTime() - 1); return date; 获取给定日的第一刻。 param when 给定日 return 最后一刻。例如:2006-4-19 235959.999 public static Date getDay(Date when) Date date = truncate(when,Calendar.DATE); date
24、 = addDays(date,-1); date.setTime(date.getTime() + 1); return date; 取得系统当前时间,格式为yyyy-mm-dd public static String getCurrentDate() Calendar rightNow = Calendar.getInstance(); int year = rightNow.get(Calendar.YEAR); int month = rightNow.get(Calendar.MONTH) + 1; int day = rightNow.get(Calendar.DATE); re
25、turn year + - + month + - + day; 取得系统当前时间,格式为yyyy年mm月dd日 public static String getCurrentDate1() Calendar rightNow = Calendar.getInstance(); int year = rightNow.get(Calendar.YEAR); int month = rightNow.get(Calendar.MONTH) + 1; int day = rightNow.get(Calendar.DATE); return year + 年 + month + 月 + day +
26、 日; 取得系统当前时间前n个月的相对应的一天 public static String getNMonthBeforeCurrentDay(int n) Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, -n); return + c.get(Calendar.YEAR) + - + (c.get(Calendar.MONTH) + 1) + - + c.get(Calendar.DATE); 取得系统当前时间后n个月的相对应的一天 public static String getNMonthAfterCurrentDay(
27、int n) Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, n); return + c.get(Calendar.YEAR) + - + (c.get(Calendar.MONTH) + 1) + - + c.get(Calendar.DATE); 取得系统当前时间前n天,格式为yyyy-mm-dd public static String getNDayBeforeCurrentDate(int n) Calendar c = Calendar.getInstance(); c.add(Calendar.DAY_OF_
28、MONTH, -n); return + c.get(Calendar.YEAR) + - + (c.get(Calendar.MONTH) + 1) + - + c.get(Calendar.DATE); 取得系统当前时间后n天,格式为yyyy-mm-dd public static String getNDayAfterCurrentDate(int n) Calendar c = Calendar.getInstance(); c.add(Calendar.DAY_OF_MONTH, n); return + c.get(Calendar.YEAR) + - + (c.get(Calen
29、dar.MONTH) + 1) + - + c.get(Calendar.DATE); - 取过去一个时间对应的系统当年的一天 public static String getCurrentDateAfterPastDate(String sPastDate) if (sPastDate != null & !sPastDate.equals() Date date = switchStringToDate(sPastDate); Calendar c = Calendar.getInstance(); c.setTime(date); int iPastYear = c.get(Calendar.YEAR); Calendar c1 = Calendar.getInstance(); int iCurrentYear = c1.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1