總結(jié)一些常用到的函數(shù)可以直接在你的應(yīng)用程序中調(diào)用就可以了!方便。我在網(wǎng)上找了些有的用不了。
/** * 以指定的格式來(lái)格式化日期 * @param date Date * @param format String * @return String */ public String formatDateByFormat(java.util.Date date,String format) { String result = ""; if(date != null) { try { SimpleDateFormat sdf = new SimpleDateFormat(format); result = sdf.format(date); } catch(Exception ex) { ex.printStackTrace(); } } return result; } /** * 常用的格式化日期 * * @param date Date * @return String */ public String formatDate(java.util.Date date) { return formatDateByFormat(date,"yyyy-MM-dd"); }
|
直接在主方法中調(diào)用這個(gè)方法就可以生成我們所想要的日期格式了哦!方便使用的!
java.util 類 Calendar好像這個(gè)類的功能相當(dāng)?shù)貜?qiáng)大,我查了一下JDK參考文檔摘錄如下重要信息:
Calendar 提供了一個(gè)類方法 getInstance,以獲得此類型的一個(gè)通用的對(duì)象。Calendar 的 getInstance 方法返回一個(gè) Calendar 對(duì)象,其日歷字段已由當(dāng)前日期和時(shí)間初始化:
Calendar rightNow = Calendar.getInstance();//類方法
可以通過(guò)調(diào)用 set 方法來(lái)設(shè)置日歷字段值。在需要計(jì)算時(shí)間值(距歷元所經(jīng)過(guò)的毫秒)或日歷字段值之前,不會(huì)解釋 Calendar 中的所有字段值設(shè)置。調(diào)用 get、getTimeInMillis、getTime、add 和 roll 涉及此類計(jì)算。
會(huì)了這個(gè)方法之后的方法如下:
/** * 返回年份 * * @param date * 日期 * @return 返回年份 */ public static int getYear(java.util.Date date) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTime(date); return c.get(java.util.Calendar.YEAR); } 賦值一個(gè)java.util.Date 對(duì)象給它當(dāng)參數(shù)就可以得到當(dāng)前的年份了。 /** * 返回月份 * * @param date * 日期 * @return 返回月份 */ public static int getMonth(java.util.Date date) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTime(date); return c.get(java.util.Calendar.MONTH) + 1; } 得到1月份為1哦。因?yàn)槲壹恿?哈哈。 /** * 返回日份 * * @param date * 日期 * @return 返回日份 */ public static int getDay(java.util.Date date) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTime(date); return c.get(java.util.Calendar.DAY_OF_MONTH); } 可以返回是幾號(hào)出來(lái)了哦! /** * 返回小時(shí) * * @param date * 日期 * @return 返回小時(shí) */ public static int getHour(java.util.Date date) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTime(date); return c.get(java.util.Calendar.HOUR_OF_DAY); } /** * 返回分鐘 * * @param date * 日期 * @return 返回分鐘 */ public static int getMinute(java.util.Date date) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTime(date); return c.get(java.util.Calendar.MINUTE); } /** * 返回秒鐘 * * @param date * 日期 * @return 返回秒鐘 */ public static int getSecond(java.util.Date date) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTime(date); return c.get(java.util.Calendar.SECOND); } |
DAY_OF_WEEK_IN_MONTH get 和 set 的字段數(shù)字,指示當(dāng)前月中的第幾個(gè)星期。
可以指定今天是當(dāng)前月的第幾個(gè)星期哦!
我試了一下今天是當(dāng)前月的第2周哈哈正確!
DAY_OF_WEEK get 和 set 的字段數(shù)字,指示一個(gè)星期中的某天。
我相信這個(gè)屬性會(huì)對(duì)我有幫助的哦!
public static int getDay(java.util.Date date) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTime(date); return c.get(java.util.Calendar.DAY_OF_WEEK); }
|
我直接調(diào)用這個(gè)方法可以得到 今天是周三 返回的是4 因?yàn)槭侵苋帐菑?開(kāi)始的哦!
OK,我現(xiàn)在想了解一下 當(dāng)你輸入:2008年5月第一周是從哪號(hào)到哪號(hào)的
OK,現(xiàn)在來(lái)分析一下當(dāng)用戶輸入2008年5月份第一周是從幾號(hào)到幾號(hào)的問(wèn)題了!
第一步:得到今天是哪年哪月哪號(hào)哪周都沒(méi)有問(wèn)題了。
第二步:確定2008年5月份的一號(hào)是周幾?
WEEK_OF_YEAR get 和 set 的字段數(shù)字,指示當(dāng)前年中的星期數(shù)。
可以確定今天是這一年中的第幾周哦哈哈。太強(qiáng)大了這個(gè)類
Calendar cal = Calendar.getInstance(); int month=cal.getActualMaximum(Calendar.DAY_OF_MONTH);
|
此方法可以得到當(dāng)前月份的天數(shù)哦。非常地好用 而且我在潤(rùn)年與平年的時(shí)候進(jìn)行比較處理了發(fā)現(xiàn)能夠準(zhǔn)確得到天數(shù)哦!
//獲得周一的日期 public static String getMonday(Date date){ Calendar c = Calendar.getInstance(); c.setTime(date); c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY); return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime()); }
|
這個(gè)方法可以得到當(dāng)前月份的周一的日
OK!剛剛在網(wǎng)上找了一份非常不錯(cuò)的代碼現(xiàn)在整理如下:
/**下面的方法可以通過(guò)一個(gè)字符串構(gòu)造出來(lái)一個(gè)Date類型的數(shù)據(jù)出來(lái)!*/ public static Date strToDateLong(String strDate) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); ParsePosition pos = new ParsePosition(0); Date strtodate = formatter.parse(strDate, pos); return strtodate; } /**既然能夠構(gòu)造出來(lái)指定日期的時(shí)間變量那現(xiàn)在來(lái)分析一下指定某天與當(dāng)天的時(shí)間差吧!*/ /** * 得到二個(gè)日期間的間隔天數(shù) */ public static String getTwoDay(String sj1, String sj2) { SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd"); long day = 0; try { java.util.Date date = myFormatter.parse(sj1); java.util.Date mydate = myFormatter.parse(sj2); day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000); } catch (Exception e) { return ""; } return day + ""; }
|
我在代碼中實(shí)現(xiàn)了可以發(fā)現(xiàn)結(jié)果是正確 的哦!
而且是能夠判斷出來(lái)潤(rùn)年與否的哦。方便得多了哦!
OK!
/**通過(guò)這樣子我們可以構(gòu)造出來(lái)一個(gè)類似這種字符串類型的時(shí)間出來(lái)的哦!*/ public static Date strToDate(String strDate) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); ParsePosition pos = new ParsePosition(0); Date strtodate = formatter.parse(strDate, pos); return strtodate; } /** * 獲得一個(gè)日期所在的周的星期幾的日期,如要找出2002年2月3日所在周的星期一是幾號(hào) * * @param sdate 所確定的日期形式2009-01-01 * @param num 要確定的是周幾(1表示周一2表示周二) * @return */ public static String getWeek(String sdate, String num) { // 再轉(zhuǎn)換為時(shí)間 Date dd = VeDate.strToDate(sdate); Calendar c = Calendar.getInstance(); c.setTime(dd); if (num.equals("1")) // 返回星期一所在的日期 c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); else if (num.equals("2")) // 返回星期二所在的日期 c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY); else if (num.equals("3")) // 返回星期三所在的日期 c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY); else if (num.equals("4")) // 返回星期四所在的日期 c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY); else if (num.equals("5")) // 返回星期五所在的日期 c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY); else if (num.equals("6")) // 返回星期六所在的日期 c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY); else if (num.equals("0")) // 返回星期日所在的日期 c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime()); }
|