hello world

          隨筆 - 2, 文章 - 63, 評論 - 0, 引用 - 0
          數據加載中……

          【轉】JAVA時間類型操作

          /**
          ?日期類
          ?*?@date???2003-12-04
          ?*?
          @version ?1.0
          ?
          */

          import ?java.util. * ;
          import ?java.text. * ;
          import ?java.util.Calendar;

          public ? class ?VeDate?{
          ?
          /**
          ??*?獲取現在時間
          ??*
          ??*?
          @return ?返回時間類型?yyyy-MM-dd?HH:mm:ss
          ??
          */
          ?
          public ? static ?Date?getNowDate()?{
          ??Date?currentTime?
          = ? new ?Date();
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd?HH:mm:ss " );
          ??String?dateString?
          = ?formatter.format(currentTime);
          ??ParsePosition?pos?
          = ? new ?ParsePosition( 8 );
          ??Date?currentTime_2?
          = ?formatter.parse(dateString,?pos);
          ??
          return ?currentTime_2;
          ?}

          ?
          /**
          ??*?獲取現在時間
          ??*
          ??*?@return返回短時間格式?yyyy-MM-dd
          ??
          */
          ?
          public ? static ?Date?getNowDateShort()?{
          ??Date?currentTime?
          = ? new ?Date();
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd " );
          ??String?dateString?
          = ?formatter.format(currentTime);
          ??ParsePosition?pos?
          = ? new ?ParsePosition( 8 );
          ??Date?currentTime_2?
          = ?formatter.parse(dateString,?pos);
          ??
          return ?currentTime_2;
          ?}

          ?
          /**
          ??*?獲取現在時間
          ??*
          ??*?@return返回字符串格式?yyyy-MM-dd?HH:mm:ss
          ??
          */
          ?
          public ? static ?String?getStringDate()?{
          ??Date?currentTime?
          = ? new ?Date();
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd?HH:mm:ss " );
          ??String?dateString?
          = ?formatter.format(currentTime);
          ??
          return ?dateString;
          ?}

          ?
          /**
          ??*?獲取現在時間
          ??*
          ??*?
          @return ?返回短時間字符串格式yyyy-MM-dd
          ??
          */
          ?
          public ? static ?String?getStringDateShort()?{
          ??Date?currentTime?
          = ? new ?Date();
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd " );
          ??String?dateString?
          = ?formatter.format(currentTime);
          ??
          return ?dateString;
          ?}

          ?
          /**
          ??*?獲取時間?小時:分;秒?HH:mm:ss
          ??*
          ??*?
          @return
          ??
          */
          ?
          public ? static ?String?getTimeShort()?{
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat( " HH:mm:ss " );
          ??Date?currentTime?
          = ? new ?Date();
          ??String?dateString?
          = ?formatter.format(currentTime);
          ??
          return ?dateString;
          ?}

          ?
          /**
          ??*?將長時間格式字符串轉換為時間?yyyy-MM-dd?HH:mm:ss
          ??*
          ??*?
          @param ?strDate
          ??*?
          @return
          ??
          */
          ?
          public ? static ?Date?strToDateLong(String?strDate)?{
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd?HH:mm:ss " );
          ??ParsePosition?pos?
          = ? new ?ParsePosition( 0 );
          ??Date?strtodate?
          = ?formatter.parse(strDate,?pos);
          ??
          return ?strtodate;
          ?}

          ?
          /**
          ??*?將長時間格式時間轉換為字符串?yyyy-MM-dd?HH:mm:ss
          ??*
          ??*?
          @param ?dateDate
          ??*?
          @return
          ??
          */
          ?
          public ? static ?String?dateToStrLong(java.util.Date?dateDate)?{
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd?HH:mm:ss " );
          ??String?dateString?
          = ?formatter.format(dateDate);
          ??
          return ?dateString;
          ?}

          ?
          /**
          ??*?將短時間格式時間轉換為字符串?yyyy-MM-dd
          ??*
          ??*?
          @param ?dateDate
          ??*?
          @param ?k
          ??*?
          @return
          ??
          */
          ?
          public ? static ?String?dateToStr(java.util.Date?dateDate)?{
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd " );
          ??String?dateString?
          = ?formatter.format(dateDate);
          ??
          return ?dateString;
          ?}

          ?
          /**
          ??*?將短時間格式字符串轉換為時間?yyyy-MM-dd
          ??*
          ??*?
          @param ?strDate
          ??*?
          @return
          ??
          */
          ?
          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;
          ?}

          ?
          /**
          ??*?得到現在時間
          ??*
          ??*?
          @return
          ??
          */
          ?
          public ? static ?Date?getNow()?{
          ??Date?currentTime?
          = ? new ?Date();
          ??
          return ?currentTime;
          ?}

          ?
          /**
          ??*?提取一個月中的最后一天
          ??*
          ??*?
          @param ?day
          ??*?
          @return
          ??
          */
          ?
          public ? static ?Date?getLastDate( long ?day)?{
          ??Date?date?
          = ? new ?Date();
          ??
          long ?date_3_hm? = ?date.getTime()? - ? 3600000 ? * ? 34 ? * ?day;
          ??Date?date_3_hm_date?
          = ? new ?Date(date_3_hm);
          ??
          return ?date_3_hm_date;
          ?}

          ?
          /**
          ??*?得到現在時間
          ??*
          ??*?
          @return ?字符串?yyyyMMdd?HHmmss
          ??
          */
          ?
          public ? static ?String?getStringToday()?{
          ??Date?currentTime?
          = ? new ?Date();
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat( " yyyyMMdd?HHmmss " );
          ??String?dateString?
          = ?formatter.format(currentTime);
          ??
          return ?dateString;
          ?}

          ?
          /**
          ??*?得到現在小時
          ??
          */
          ?
          public ? static ?String?getHour()?{
          ??Date?currentTime?
          = ? new ?Date();
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd?HH:mm:ss " );
          ??String?dateString?
          = ?formatter.format(currentTime);
          ??String?hour;
          ??hour?
          = ?dateString.substring( 11 ,? 13 );
          ??
          return ?hour;
          ?}

          ?
          /**
          ??*?得到現在分鐘
          ??*
          ??*?
          @return
          ??
          */
          ?
          public ? static ?String?getTime()?{
          ??Date?currentTime?
          = ? new ?Date();
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd?HH:mm:ss " );
          ??String?dateString?
          = ?formatter.format(currentTime);
          ??String?min;
          ??min?
          = ?dateString.substring( 14 ,? 16 );
          ??
          return ?min;
          ?}

          ?
          /**
          ??*?根據用戶傳入的時間表示格式,返回當前時間的格式?如果是yyyyMMdd,注意字母y不能大寫。
          ??*
          ??*?
          @param ?sformat
          ??*????????????yyyyMMddhhmmss
          ??*?
          @return
          ??
          */
          ?
          public ? static ?String?getUserDate(String?sformat)?{
          ??Date?currentTime?
          = ? new ?Date();
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat(sformat);
          ??String?dateString?
          = ?formatter.format(currentTime);
          ??
          return ?dateString;
          ?}

          ?
          /**
          ??*?二個小時時間間的差值,必須保證二個時間都是"HH:MM"的格式,返回字符型的分鐘
          ??
          */
          ?
          public ? static ?String?getTwoHour(String?st1,?String?st2)?{
          ??String[]?kk?
          = ? null ;
          ??String[]?jj?
          = ? null ;
          ??kk?
          = ?st1.split( " : " );
          ??jj?
          = ?st2.split( " : " );
          ??
          if ?(Integer.parseInt(kk[ 0 ])? < ?Integer.parseInt(jj[ 0 ]))
          ???
          return ? " 0 " ;
          ??
          else ?{
          ???
          double ?y? = ?Double.parseDouble(kk[ 0 ])? + ?Double.parseDouble(kk[ 1 ])? / ? 60 ;
          ???
          double ?u? = ?Double.parseDouble(jj[ 0 ])? + ?Double.parseDouble(jj[ 1 ])? / ? 60 ;
          ???
          if ?((y? - ?u)? > ? 0 )
          ????
          return ?y? - ?u? + ? "" ;
          ???
          else
          ????
          return ? " 0 " ;
          ??}
          ?}

          ?
          /**
          ??*?得到二個日期間的間隔天數
          ??
          */
          ?
          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? + ? "" ;
          ?}

          ?
          /**
          ??*?時間前推或后推分鐘,其中JJ表示分鐘.
          ??
          */
          ?
          public ? static ?String?getPreTime(String?sj1,?String?jj)?{
          ??SimpleDateFormat?format?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd?HH:mm:ss " );
          ??String?mydate1?
          = ? "" ;
          ??
          try ?{
          ???Date?date1?
          = ?format.parse(sj1);
          ???
          long ?Time? = ?(date1.getTime()? / ? 1000 )? + ?Integer.parseInt(jj)? * ? 60 ;
          ???date1.setTime(Time?
          * ? 1000 );
          ???mydate1?
          = ?format.format(date1);
          ??}?
          catch ?(Exception?e)?{
          ??}
          ??
          return ?mydate1;
          ?}

          ?
          /**
          ??*?得到一個時間延后或前移幾天的時間,nowdate為時間,delay為前移或后延的天數
          ??
          */
          ?
          public ? static ?String?getNextDay(String?nowdate,?String?delay)?{
          ??
          try {
          ??SimpleDateFormat?format?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd " );
          ??String?mdate?
          = ? "" ;
          ??Date?d?
          = ?strToDate(nowdate);
          ??
          long ?myTime? = ?(d.getTime()? / ? 1000 )? + ?Integer.parseInt(delay)? * ? 24 ? * ? 60 ? * ? 60 ;
          ??d.setTime(myTime?
          * ? 1000 );
          ??mdate?
          = ?format.format(d);
          ??
          return ?mdate;
          ??}
          catch (Exception?e){
          ???
          return ? "" ;
          ??}
          ?}

          ?
          /**
          ??*?判斷是否潤年
          ??*
          ??*?
          @param ?ddate
          ??*?
          @return
          ??
          */
          ?
          public ? static ? boolean ?isLeapYear(String?ddate)?{

          ??
          /**
          ???*?詳細設計:?1.被400整除是閏年,否則:?2.不能被4整除則不是閏年?3.能被4整除同時不能被100整除則是閏年
          ???*?3.能被4整除同時能被100整除則不是閏年
          ???
          */
          ??Date?d?
          = ?strToDate(ddate);
          ??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 ;
          ???
          else
          ????
          return ? true ;
          ??}?
          else
          ???
          return ? false ;
          ?}

          ?
          /**
          ??*?返回美國時間格式?26?Apr?2006
          ??*
          ??*?
          @param ?str
          ??*?
          @return
          ??
          */
          ?
          public ? static ?String?getEDate(String?str)?{
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd " );
          ??ParsePosition?pos?
          = ? new ?ParsePosition( 0 );
          ??Date?strtodate?
          = ?formatter.parse(str,?pos);
          ??String?j?
          = ?strtodate.toString();
          ??String[]?k?
          = ?j.split( " ? " );
          ??
          return ?k[ 2 ]? + ?k[ 1 ].toUpperCase()? + ?k[ 5 ].substring( 2 ,? 4 );
          ?}

          ?
          /**
          ??*?獲取一個月的最后一天
          ??*
          ??*?
          @param ?dat
          ??*?
          @return
          ??
          */
          ?
          public ? static ?String?getEndDateOfMonth(String?dat)?{ // ?yyyy-MM-dd
          ??String?str? = ?dat.substring( 0 ,? 8 );
          ??String?month?
          = ?dat.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(dat))?{
          ????str?
          += ? " 29 " ;
          ???}?
          else ?{
          ????str?
          += ? " 28 " ;
          ???}
          ??}
          ??
          return ?str;
          ?}

          ?
          /**
          ??*?判斷二個時間是否在同一個周
          ??*
          ??*?
          @param ?date1
          ??*?
          @param ?date2
          ??*?
          @return
          ??
          */
          ?
          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 ;
          ?}

          ?
          /**
          ??*?產生周序列,即得到當前時間所在的年度是第幾周
          ??*
          ??*?
          @return
          ??
          */
          ?
          public ? static ?String?getSeqWeek()?{
          ??Calendar?c?
          = ?Calendar.getInstance(Locale.CHINA);
          ??String?week?
          = ?Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
          ??
          if ?(week.length()? == ? 1 )
          ???week?
          = ? " 0 " ? + ?week;
          ??String?year?
          = ?Integer.toString(c.get(Calendar.YEAR));
          ??
          return ?year? + ?week;
          ?}

          ?
          /**
          ??*?獲得一個日期所在的周的星期幾的日期,如要找出2002年2月3日所在周的星期一是幾號
          ??*
          ??*?
          @param ?sdate
          ??*?
          @param ?num
          ??*?
          @return
          ??
          */
          ?
          public ? static ?String?getWeek(String?sdate,?String?num)?{
          ??
          // ?再轉換為時間
          ??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());
          ?}

          ?
          /**
          ??*?根據一個日期,返回是星期幾的字符串
          ??*
          ??*?
          @param ?sdate
          ??*?
          @return
          ??
          */
          ?
          public ? static ?String?getWeek(String?sdate)?{
          ??
          // ?再轉換為時間
          ??Date?date? = ?VeDate.strToDate(sdate);
          ??Calendar?c?
          = ?Calendar.getInstance();
          ??c.setTime(date);
          ??
          // ?int?hour=c.get(Calendar.DAY_OF_WEEK);
          ??
          // ?hour中存的就是星期幾了,其范圍?1~7
          ??
          // ?1=星期日?7=星期六,其他類推
          ?? return ? new ?SimpleDateFormat( " EEEE " ).format(c.getTime());
          ?}
          ?
          public ? static ?String?getWeekStr(String?sdate){
          ??String?str?
          = ? "" ;
          ??str?
          = ?VeDate.getWeek(sdate);
          ??
          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;
          ?}

          ?
          /**
          ??*?兩個時間之間的天數
          ??*
          ??*?
          @param ?date1
          ??*?
          @param ?date2
          ??*?
          @return
          ??
          */
          ?
          public ? static ? long ?getDays(String?date1,?String?date2)?{
          ??
          if ?(date1? == ? null ? || ?date1.equals( "" ))
          ???
          return ? 0 ;
          ??
          if ?(date2? == ? null ? || ?date2.equals( "" ))
          ???
          return ? 0 ;
          ??
          // ?轉換為標準時間
          ??SimpleDateFormat?myFormatter? = ? new ?SimpleDateFormat( " yyyy-MM-dd " );
          ??java.util.Date?date?
          = ? null ;
          ??java.util.Date?mydate?
          = ? null ;
          ??
          try ?{
          ???date?
          = ?myFormatter.parse(date1);
          ???mydate?
          = ?myFormatter.parse(date2);
          ??}?
          catch ?(Exception?e)?{
          ??}
          ??
          long ?day? = ?(date.getTime()? - ?mydate.getTime())? / ?( 24 ? * ? 60 ? * ? 60 ? * ? 1000 );
          ??
          return ?day;
          ?}

          ?
          /**
          ??*?形成如下的日歷?,?根據傳入的一個時間返回一個結構?星期日?星期一?星期二?星期三?星期四?星期五?星期六?下面是當月的各個時間
          ??*?此函數返回該日歷第一行星期日所在的日期
          ??*
          ??*?
          @param ?sdate
          ??*?
          @return
          ??
          */
          ?
          public ? static ?String?getNowMonth(String?sdate)?{
          ??
          // ?取該時間所在月的一號
          ??sdate? = ?sdate.substring( 0 ,? 8 )? + ? " 01 " ;

          ??
          // ?得到這個月的1號是星期幾
          ??Date?date? = ?VeDate.strToDate(sdate);
          ??Calendar?c?
          = ?Calendar.getInstance();
          ??c.setTime(date);
          ??
          int ?u? = ?c.get(Calendar.DAY_OF_WEEK);
          ??String?newday?
          = ?VeDate.getNextDay(sdate,?( 1 ? - ?u)? + ? "" );
          ??
          return ?newday;
          ?}

          ?
          /**
          ??*?取得數據庫主鍵?生成格式為yyyymmddhhmmss+k位隨機數
          ??*
          ??*?
          @param ?k
          ??*????????????表示是取幾位隨機數,可以自己定
          ??
          */

          ?
          public ? static ?String?getNo( int ?k)?{

          ??
          return ?getUserDate( " yyyyMMddhhmmss " )? + ?getRandom(k);
          ?}

          ?
          /**
          ??*?返回一個隨機數
          ??*
          ??*?
          @param ?i
          ??*?
          @return
          ??
          */
          ?
          public ? static ?String?getRandom( int ?i)?{
          ??Random?jjj?
          = ? new ?Random();
          ??
          // ?int?suiJiShu?=?jjj.nextInt(9);
          ?? if ?(i? == ? 0 )
          ???
          return ? "" ;
          ??String?jj?
          = ? "" ;
          ??
          for ?( int ?k? = ? 0 ;?k? < ?i;?k ++ )?{
          ???jj?
          = ?jj? + ?jjj.nextInt( 9 );
          ??}
          ??
          return ?jj;
          ?}

          ?
          /**
          ??*
          ??*?
          @param ?args
          ??
          */
          ?
          public ? static ? boolean ?RightDate(String?date)?{

          ??SimpleDateFormat?sdf?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd?hh:mm:ss " );
          ??;
          ??
          if ?(date? == ? null )
          ???
          return ? false ;
          ??
          if ?(date.length()? > ? 10 )?{
          ???sdf?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd?hh:mm:ss " );
          ??}?
          else ?{
          ???sdf?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd " );
          ??}
          ??
          try ?{
          ???sdf.parse(date);
          ??}?
          catch ?(ParseException?pe)?{
          ???
          return ? false ;
          ??}
          ??
          return ? true ;
          ?}

          ?
          /** *************************************************************************
          ??*?//nd=1表示返回的值中包含年度?//yf=1表示返回的值中包含月份?//rq=1表示返回的值中包含日期?//format表示返回的格式?1
          ??*?以年月日中文返回?2?以橫線-返回?//?3?以斜線/返回?4?以縮寫不帶其它符號形式返回?//?5?以點號.返回
          ??*************************************************************************
          */
          ?
          public ? static ?String?getStringDateMonth(String?sdate,?String?nd,?String?yf,?String?rq,?String?format)?{
          ??Date?currentTime?
          = ? new ?Date();
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd " );
          ??String?dateString?
          = ?formatter.format(currentTime);
          ??String?s_nd?
          = ?dateString.substring( 0 ,? 4 );? // ?年份
          ??String?s_yf? = ?dateString.substring( 5 ,? 7 );? // ?月份
          ??String?s_rq? = ?dateString.substring( 8 ,? 10 );? // ?日期
          ??String?sreturn? = ? "" ;
          ??roc.util.MyChar?mc?
          = ? new ?roc.util.MyChar();
          ??
          if ?(sdate? == ? null ? || ?sdate.equals( "" )? || ? ! mc.Isdate(sdate))?{? // ?處理空值情況
          ??? if ?(nd.equals( " 1 " ))?{
          ????sreturn?
          = ?s_nd;
          ????
          // ?處理間隔符
          ???? if ?(format.equals( " 1 " ))
          ?????sreturn?
          = ?sreturn? + ? " " ;
          ????
          else ? if ?(format.equals( " 2 " ))
          ?????sreturn?
          = ?sreturn? + ? " - " ;
          ????
          else ? if ?(format.equals( " 3 " ))
          ?????sreturn?
          = ?sreturn? + ? " / " ;
          ????
          else ? if ?(format.equals( " 5 " ))
          ?????sreturn?
          = ?sreturn? + ? " . " ;
          ???}
          ???
          // ?處理月份
          ??? if ?(yf.equals( " 1 " ))?{
          ????sreturn?
          = ?sreturn? + ?s_yf;
          ????
          if ?(format.equals( " 1 " ))
          ?????sreturn?
          = ?sreturn? + ? " " ;
          ????
          else ? if ?(format.equals( " 2 " ))
          ?????sreturn?
          = ?sreturn? + ? " - " ;
          ????
          else ? if ?(format.equals( " 3 " ))
          ?????sreturn?
          = ?sreturn? + ? " / " ;
          ????
          else ? if ?(format.equals( " 5 " ))
          ?????sreturn?
          = ?sreturn? + ? " . " ;
          ???}
          ???
          // ?處理日期
          ??? if ?(rq.equals( " 1 " ))?{
          ????sreturn?
          = ?sreturn? + ?s_rq;
          ????
          if ?(format.equals( " 1 " ))
          ?????sreturn?
          = ?sreturn? + ? " " ;
          ???}
          ??}?
          else ?{
          ???
          // ?不是空值,也是一個合法的日期值,則先將其轉換為標準的時間格式
          ???sdate? = ?roc.util.RocDate.getOKDate(sdate);
          ???s_nd?
          = ?sdate.substring( 0 ,? 4 );? // ?年份
          ???s_yf? = ?sdate.substring( 5 ,? 7 );? // ?月份
          ???s_rq? = ?sdate.substring( 8 ,? 10 );? // ?日期
          ??? if ?(nd.equals( " 1 " ))?{
          ????sreturn?
          = ?s_nd;
          ????
          // ?處理間隔符
          ???? if ?(format.equals( " 1 " ))
          ?????sreturn?
          = ?sreturn? + ? " " ;
          ????
          else ? if ?(format.equals( " 2 " ))
          ?????sreturn?
          = ?sreturn? + ? " - " ;
          ????
          else ? if ?(format.equals( " 3 " ))
          ?????sreturn?
          = ?sreturn? + ? " / " ;
          ????
          else ? if ?(format.equals( " 5 " ))
          ?????sreturn?
          = ?sreturn? + ? " . " ;
          ???}
          ???
          // ?處理月份
          ??? if ?(yf.equals( " 1 " ))?{
          ????sreturn?
          = ?sreturn? + ?s_yf;
          ????
          if ?(format.equals( " 1 " ))
          ?????sreturn?
          = ?sreturn? + ? " " ;
          ????
          else ? if ?(format.equals( " 2 " ))
          ?????sreturn?
          = ?sreturn? + ? " - " ;
          ????
          else ? if ?(format.equals( " 3 " ))
          ?????sreturn?
          = ?sreturn? + ? " / " ;
          ????
          else ? if ?(format.equals( " 5 " ))
          ?????sreturn?
          = ?sreturn? + ? " . " ;
          ???}
          ???
          // ?處理日期
          ??? if ?(rq.equals( " 1 " ))?{
          ????sreturn?
          = ?sreturn? + ?s_rq;
          ????
          if ?(format.equals( " 1 " ))
          ?????sreturn?
          = ?sreturn? + ? " " ;
          ???}
          ??}
          ??
          return ?sreturn;
          ?}

          ?
          public ? static ?String?getNextMonthDay(String?sdate,? int ?m)?{
          ??sdate?
          = ?getOKDate(sdate);
          ??
          int ?year? = ?Integer.parseInt(sdate.substring( 0 ,? 4 ));
          ??
          int ?month? = ?Integer.parseInt(sdate.substring( 5 ,? 7 ));
          ??month?
          = ?month? + ?m;
          ??
          if ?(month? < ? 0 )?{
          ???month?
          = ?month? + ? 12 ;
          ???year?
          = ?year? - ? 1 ;
          ??}?
          else ? if ?(month? > ? 12 )?{
          ???month?
          = ?month? - ? 12 ;
          ???year?
          = ?year? + ? 1 ;
          ??}
          ??String?smonth?
          = ? "" ;
          ??
          if ?(month? < ? 10 )
          ???smonth?
          = ? " 0 " ? + ?month;
          ??
          else
          ???smonth?
          = ? "" ? + ?month;
          ??
          return ?year? + ? " - " ? + ?smonth? + ? " -10 " ;
          ?}

          ?
          public ? static ?String?getOKDate(String?sdate)?{
          ??
          if ?(sdate? == ? null ? || ?sdate.equals( "" ))
          ???
          return ?getStringDateShort();

          ??
          if ?( ! VeStr.Isdate(sdate))?{
          ???sdate?
          = ?getStringDateShort();
          ??}
          ??
          // ?將“/”轉換為“-”
          ??sdate? = ?VeStr.Replace(sdate,? " / " ,? " - " );
          ??
          // ?如果只有8位長度,則要進行轉換
          ?? if ?(sdate.length()? == ? 8 )
          ???sdate?
          = ?sdate.substring( 0 ,? 4 )? + ? " - " ? + ?sdate.substring( 4 ,? 6 )? + ? " - " ? + ?sdate.substring( 6 ,? 8 );
          ??SimpleDateFormat?formatter?
          = ? new ?SimpleDateFormat( " yyyy-MM-dd " );
          ??ParsePosition?pos?
          = ? new ?ParsePosition( 0 );
          ??Date?strtodate?
          = ?formatter.parse(sdate,?pos);
          ??String?dateString?
          = ?formatter.format(strtodate);
          ??
          return ?dateString;
          ?}

          ?
          public ? static ? void ?main(String[]?args)? throws ?Exception?{
          ??
          try ?{
          ???
          // System.out.print(Integer.valueOf(getTwoDay("2006-11-03?12:22:10",?"2006-11-02?11:22:09")));
          ??}? catch ?(Exception?e)?{
          ???
          throw ? new ?Exception();
          ??}
          ??
          // System.out.println("sss");
          ?}
          }
          轉自:http://babyvox5th.javaeye.com/blog/263007

          posted on 2009-11-10 10:23 聽風 閱讀(558) 評論(0)  編輯  收藏 所屬分類: JAVA

          主站蜘蛛池模板: 当涂县| 普宁市| 巩留县| 浦城县| 克山县| 申扎县| 普宁市| 珠海市| 田阳县| 沂源县| 凭祥市| 来安县| 通榆县| 桐城市| 刚察县| 长寿区| 绍兴县| 陇南市| 新宁县| 伊通| 宝山区| 永平县| 黎城县| 咸阳市| 游戏| 无锡市| 政和县| 竹山县| 惠来县| 丰都县| 通海县| 五家渠市| 耿马| 大港区| 砚山县| 凌云县| 金门县| 达拉特旗| 鸡东县| 墨脱县| 无为县|