1 import java.text.*;
2 import java.util.Calendar;
3 public class VeDate {
4 /**
5 * 獲取現在時間
6 *
7 * @return 返回時間類型 yyyy-MM-dd HH:mm:ss
8 */
9 public static Date getNowDate() {
10 Date currentTime = new Date();
11 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
12 String dateString = formatter.format(currentTime);
13 ParsePosition pos = new ParsePosition(8);
14 Date currentTime_2 = formatter.parse(dateString, pos);
15 return currentTime_2;
16 }
17 /**
18 * 獲取現在時間
19 *
20 * @return返回短時間格式 yyyy-MM-dd
21 */
22 DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
23 DateFormat format 2= new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
24 Date date = null;
25 String str = null;
26
27 // String轉Date
28 str = "2007-1-18";
29 try {
30 date = format1.parse(str);
31 data = format2.parse(str);
32 } catch (ParseException e) {
33 e.printStackTrace();
34 }
35 /**
36 * 獲取現在時間
37 *
38 * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
39 */
40 public static String getStringDate() {
41 Date currentTime = new Date();
42 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
43 String dateString = formatter.format(currentTime);
44 return dateString;
45 }
46 /**
47 * 獲取現在時間
48 *
49 * @return 返回短時間字符串格式yyyy-MM-dd
50 */
51 public static String getStringDateShort() {
52 Date currentTime = new Date();
53 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
54 String dateString = formatter.format(currentTime);
55 return dateString;
56 }
57 /**
58 * 獲取時間 小時:分;秒 HH:mm:ss
59 *
60 * @return
61 */
62 public static String getTimeShort() {
63 SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
64 Date currentTime = new Date();
65 String dateString = formatter.format(currentTime);
66 return dateString;
67 }
68 /**
69 * 將長時間格式字符串轉換為時間 yyyy-MM-dd HH:mm:ss
70 *
71 * @param strDate
72 * @return
73 */
74 public static Date strToDateLong(String strDate) {
75 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
76 ParsePosition pos = new ParsePosition(0);
77 Date strtodate = formatter.parse(strDate, pos);
78 return strtodate;
79 }
80 /**
81 * 將長時間格式時間轉換為字符串 yyyy-MM-dd HH:mm:ss
82 *
83 * @param dateDate
84 * @return
85 */
86 public static String dateToStrLong(java.util.Date dateDate) {
87 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
88 String dateString = formatter.format(dateDate);
89 return dateString;
90 }
91 /**
92 * 將短時間格式時間轉換為字符串 yyyy-MM-dd
93 *
94 * @param dateDate
95 * @param k
96 * @return
97 */
98 public static String dateToStr(java.util.Date dateDate) {
99 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
100 String dateString = formatter.format(dateDate);
101 return dateString;
102 }
103 /**
104 * 將短時間格式字符串轉換為時間 yyyy-MM-dd
105 *
106 * @param strDate
107 * @return
108 */
109 public static Date strToDate(String strDate) {
110 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
111 ParsePosition pos = new ParsePosition(0);
112 Date strtodate = formatter.parse(strDate, pos);
113 return strtodate;
114 }
115 /**
116 * 得到現在時間
117 *
118 * @return
119 */
120 public static Date getNow() {
121 Date currentTime = new Date();
122 return currentTime;
123 }
124 /**
125 * 提取一個月中的最后一天
126 *
127 * @param day
128 * @return
129 */
130 public static Date getLastDate(long day) {
131 Date date = new Date();
132 long date_3_hm = date.getTime() - 3600000 * 34 * day;
133 Date date_3_hm_date = new Date(date_3_hm);
134 return date_3_hm_date;
135 }
136 /**
137 * 得到現在時間
138 *
139 * @return 字符串 yyyyMMdd HHmmss
140 */
141 public static String getStringToday() {
142 Date currentTime = new Date();
143 SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");
144 String dateString = formatter.format(currentTime);
145 return dateString;
146 }
147 /**
148 * 得到現在小時
149 */
150 public static String getHour() {
151 Date currentTime = new Date();
152 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
153 String dateString = formatter.format(currentTime);
154 String hour;
155 hour = dateString.substring(11, 13);
156 return hour;
157 }
158 /**
159 * 得到現在分鐘
160 *
161 * @return
162 */
163 public static String getTime() {
164 Date currentTime = new Date();
165 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
166 String dateString = formatter.format(currentTime);
167 String min;
168 min = dateString.substring(14, 16);
169 return min;
170 }
171 /**
172 * 根據用戶傳入的時間表示格式,返回當前時間的格式 如果是yyyyMMdd,注意字母y不能大寫。
173 *
174 * @param sformat
175 * yyyyMMddhhmmss
176 * @return
177 */
178 public static String getUserDate(String sformat) {
179 Date currentTime = new Date();
180 SimpleDateFormat formatter = new SimpleDateFormat(sformat);
181 String dateString = formatter.format(currentTime);
182 return dateString;
183 }
184
185 --------------------------------------------------------------------------------------------------------------------------------
186
187 做成方法
188
189 import java.util.*;
190 import java.text.*;
191 import java.util.Calendar;
192
193 public class VeDate {
194 /**
195 * 獲取現在時間
196 *
197 * @return 返回時間類型 yyyy-MM-dd HH:mm:ss
198 */
199 public static Date getNowDate() {
200 Date currentTime = new Date();
201 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
202 String dateString = formatter.format(currentTime);
203 ParsePosition pos = new ParsePosition(8);
204 Date currentTime_2 = formatter.parse(dateString, pos);
205 return currentTime_2;
206 }
207
208 /**
209 * 獲取現在時間
210 *
211 * @return返回短時間格式 yyyy-MM-dd
212 */
213 public static Date getNowDateShort() {
214 Date currentTime = new Date();
215 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
216 String dateString = formatter.format(currentTime);
217 ParsePosition pos = new ParsePosition(8);
218 Date currentTime_2 = formatter.parse(dateString, pos);
219 return currentTime_2;
220 }
221
222 /**
223 * 獲取現在時間
224 *
225 * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
226 */
227 public static String getStringDate() {
228 Date currentTime = new Date();
229 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
230 String dateString = formatter.format(currentTime);
231 return dateString;
232 }
233
234 /**
235 * 獲取現在時間
236 *
237 * @return 返回短時間字符串格式yyyy-MM-dd
238 */
239 public static String getStringDateShort() {
240 Date currentTime = new Date();
241 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
242 String dateString = formatter.format(currentTime);
243 return dateString;
244 }
245
246 /**
247 * 獲取時間 小時:分;秒 HH:mm:ss
248 *
249 * @return
250 */
251 public static String getTimeShort() {
252 SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
253 Date currentTime = new Date();
254 String dateString = formatter.format(currentTime);
255 return dateString;
256 }
257
258 /**
259 * 將長時間格式字符串轉換為時間 yyyy-MM-dd HH:mm:ss
260 *
261 * @param strDate
262 * @return
263 */
264 public static Date strToDateLong(String strDate) {
265 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
266 ParsePosition pos = new ParsePosition(0);
267 Date strtodate = formatter.parse(strDate, pos);
268 return strtodate;
269 }
270
271 /**
272 * 將長時間格式時間轉換為字符串 yyyy-MM-dd HH:mm:ss
273 *
274 * @param dateDate
275 * @return
276 */
277 public static String dateToStrLong(java.util.Date dateDate) {
278 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
279 String dateString = formatter.format(dateDate);
280 return dateString;
281 }
282
283 /**
284 * 將短時間格式時間轉換為字符串 yyyy-MM-dd
285 *
286 * @param dateDate
287 * @param k
288 * @return
289 */
290 public static String dateToStr(java.util.Date dateDate) {
291 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
292 String dateString = formatter.format(dateDate);
293 return dateString;
294 }
295
296 /**
297 * 將短時間格式字符串轉換為時間 yyyy-MM-dd
298 *
299 * @param strDate
300 * @return
301 */
302 public static Date strToDate(String strDate) {
303 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
304 ParsePosition pos = new ParsePosition(0);
305 Date strtodate = formatter.parse(strDate, pos);
306 return strtodate;
307 }
308
309 /**
310 * 得到現在時間
311 *
312 * @return
313 */
314 public static Date getNow() {
315 Date currentTime = new Date();
316 return currentTime;
317 }
318
319 /**
320 * 提取一個月中的最后一天
321 *
322 * @param day
323 * @return
324 */
325 public static Date getLastDate(long day) {
326 Date date = new Date();
327 long date_3_hm = date.getTime() - 3600000 * 34 * day;
328 Date date_3_hm_date = new Date(date_3_hm);
329 return date_3_hm_date;
330 }
331
332 /**
333 * 得到現在時間
334 *
335 * @return 字符串 yyyyMMdd HHmmss
336 */
337 public static String getStringToday() {
338 Date currentTime = new Date();
339 SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");
340 String dateString = formatter.format(currentTime);
341 return dateString;
342 }
343
344 /**
345 * 得到現在小時
346 */
347 public static String getHour() {
348 Date currentTime = new Date();
349 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
350 String dateString = formatter.format(currentTime);
351 String hour;
352 hour = dateString.substring(11, 13);
353 return hour;
354 }
355
356 /**
357 * 得到現在分鐘
358 *
359 * @return
360 */
361 public static String getTime() {
362 Date currentTime = new Date();
363 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
364 String dateString = formatter.format(currentTime);
365 String min;
366 min = dateString.substring(14, 16);
367 return min;
368 }
369
370 /**
371 * 根據用戶傳入的時間表示格式,返回當前時間的格式 如果是yyyyMMdd,注意字母y不能大寫。
372 *
373 * @param sformat
374 * yyyyMMddhhmmss
375 * @return
376 */
377 public static String getUserDate(String sformat) {
378 Date currentTime = new Date();
379 SimpleDateFormat formatter = new SimpleDateFormat(sformat);
380 String dateString = formatter.format(currentTime);
381 return dateString;
382 }
383
384 /**
385 * 二個小時時間間的差值,必須保證二個時間都是"HH:MM"的格式,返回字符型的分鐘
386 */
387 public static String getTwoHour(String st1, String st2) {
388 String[] kk = null;
389 String[] jj = null;
390 kk = st1.split(":");
391 jj = st2.split(":");
392 if (Integer.parseInt(kk[0]) < Integer.parseInt(jj[0]))
393 return "0";
394 else {
395 double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1]) / 60;
396 double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1]) / 60;
397 if ((y - u) > 0)
398 return y - u + "";
399 else
400 return "0";
401 }
402 }
403
404 /**
405 * 得到二個日期間的間隔天數
406 */
407 public static String getTwoDay(String sj1, String sj2) {
408 SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
409 long day = 0;
410 try {
411 java.util.Date date = myFormatter.parse(sj1);
412 java.util.Date mydate = myFormatter.parse(sj2);
413 day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
414 } catch (Exception e) {
415 return "";
416 }
417 return day + "";
418 }
419
420 /**
421 * 時間前推或后推分鐘,其中JJ表示分鐘.
422 */
423 public static String getPreTime(String sj1, String jj) {
424 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
425 String mydate1 = "";
426 try {
427 Date date1 = format.parse(sj1);
428 long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60;
429 date1.setTime(Time * 1000);
430 mydate1 = format.format(date1);
431 } catch (Exception e) {
432 }
433 return mydate1;
434 }
435
436 /**
437 * 得到一個時間延后或前移幾天的時間,nowdate為時間,delay為前移或后延的天數
438 */
439 public static String getNextDay(String nowdate, String delay) {
440 try{
441 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
442 String mdate = "";
443 Date d = strToDate(nowdate);
444 long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;
445 d.setTime(myTime * 1000);
446 mdate = format.format(d);
447 return mdate;
448 }catch(Exception e){
449 return "";
450 }
451 }
452
453 /**
454 * 判斷是否潤年
455 *
456 * @param ddate
457 * @return
458 */
459 public static boolean isLeapYear(String ddate) {
460
461 /**
462 * 詳細設計: 1.被400整除是閏年,否則: 2.不能被4整除則不是閏年 3.能被4整除同時不能被100整除則是閏年
463 * 3.能被4整除同時能被100整除則不是閏年
464 */
465 Date d = strToDate(ddate);
466 GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
467 gc.setTime(d);
468 int year = gc.get(Calendar.YEAR);
469 if ((year % 400) == 0)
470 return true;
471 else if ((year % 4) == 0) {
472 if ((year % 100) == 0)
473 return false;
474 else
475 return true;
476 } else
477 return false;
478 }
479
480 /**
481 * 返回美國時間格式 26 Apr 2006
482 *
483 * @param str
484 * @return
485 */
486 public static String getEDate(String str) {
487 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
488 ParsePosition pos = new ParsePosition(0);
489 Date strtodate = formatter.parse(str, pos);
490 String j = strtodate.toString();
491 String[] k = j.split(" ");
492 return k[2] + k[1].toUpperCase() + k[5].substring(2, 4);
493 }
494
495 /**
496 * 獲取一個月的最后一天
497 *
498 * @param dat
499 * @return
500 */
501 public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd
502 String str = dat.substring(0, 8);
503 String month = dat.substring(5, 7);
504 int mon = Integer.parseInt(month);
505 if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {
506 str += "31";
507 } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {
508 str += "30";
509 } else {
510 if (isLeapYear(dat)) {
511 str += "29";
512 } else {
513 str += "28";
514 }
515 }
516 return str;
517 }
518
519 /**
520 * 判斷二個時間是否在同一個周
521 *
522 * @param date1
523 * @param date2
524 * @return
525 */
526 public static boolean isSameWeekDates(Date date1, Date date2) {
527 Calendar cal1 = Calendar.getInstance();
528 Calendar cal2 = Calendar.getInstance();
529 cal1.setTime(date1);
530 cal2.setTime(date2);
531 int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
532 if (0 == subYear) {
533 if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
534 return true;
535 } else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {
536 // 如果12月的最后一周橫跨來年第一周的話則最后一周即算做來年的第一周
537 if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
538 return true;
539 } else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {
540 if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
541 return true;
542 }
543 return false;
544 }
545
546 /**
547 * 產生周序列,即得到當前時間所在的年度是第幾周
548 *
549 * @return
550 */
551 public static String getSeqWeek() {
552 Calendar c = Calendar.getInstance(Locale.CHINA);
553 String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
554 if (week.length() == 1)
555 week = "0" + week;
556 String year = Integer.toString(c.get(Calendar.YEAR));
557 return year + week;
558 }
559
560 /**
561 * 獲得一個日期所在的周的星期幾的日期,如要找出2002年2月3日所在周的星期一是幾號
562 *
563 * @param sdate
564 * @param num
565 * @return
566 */
567 public static String getWeek(String sdate, String num) {
568 // 再轉換為時間
569 Date dd = VeDate.strToDate(sdate);
570 Calendar c = Calendar.getInstance();
571 c.setTime(dd);
572 if (num.equals("1")) // 返回星期一所在的日期
573 c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
574 else if (num.equals("2")) // 返回星期二所在的日期
575 c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
576 else if (num.equals("3")) // 返回星期三所在的日期
577 c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
578 else if (num.equals("4")) // 返回星期四所在的日期
579 c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
580 else if (num.equals("5")) // 返回星期五所在的日期
581 c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
582 else if (num.equals("6")) // 返回星期六所在的日期
583 c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
584 else if (num.equals("0")) // 返回星期日所在的日期
585 c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
586 return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
587 }
588
589 /**
590 * 根據一個日期,返回是星期幾的字符串
591 *
592 * @param sdate
593 * @return
594 */
595 public static String getWeek(String sdate) {
596 // 再轉換為時間
597 Date date = VeDate.strToDate(sdate);
598 Calendar c = Calendar.getInstance();
599 c.setTime(date);
600 // int hour=c.get(Calendar.DAY_OF_WEEK);
601 // hour中存的就是星期幾了,其范圍 1~7
602 // 1=星期日 7=星期六,其他類推
603 return new SimpleDateFormat("EEEE").format(c.getTime());
604 }
605 public static String getWeekStr(String sdate){
606 String str = "";
607 str = VeDate.getWeek(sdate);
608 if("1".equals(str)){
609 str = "星期日";
610 }else if("2".equals(str)){
611 str = "星期一";
612 }else if("3".equals(str)){
613 str = "星期二";
614 }else if("4".equals(str)){
615 str = "星期三";
616 }else if("5".equals(str)){
617 str = "星期四";
618 }else if("6".equals(str)){
619 str = "星期五";
620 }else if("7".equals(str)){
621 str = "星期六";
622 }
623 return str;
624 }
625
626 /**
627 * 兩個時間之間的天數
628 *
629 * @param date1
630 * @param date2
631 * @return
632 */
633 public static long getDays(String date1, String date2) {
634 if (date1 == null || date1.equals(""))
635 return 0;
636 if (date2 == null || date2.equals(""))
637 return 0;
638 // 轉換為標準時間
639 SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
640 java.util.Date date = null;
641 java.util.Date mydate = null;
642 try {
643 date = myFormatter.parse(date1);
644 mydate = myFormatter.parse(date2);
645 } catch (Exception e) {
646 }
647 long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
648 return day;
649 }
650
651 /**
652 * 形成如下的日歷 , 根據傳入的一個時間返回一個結構 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是當月的各個時間
653 * 此函數返回該日歷第一行星期日所在的日期
654 *
655 * @param sdate
656 * @return
657 */
658 public static String getNowMonth(String sdate) {
659 // 取該時間所在月的一號
660 sdate = sdate.substring(0, 8) + "01";
661
662 // 得到這個月的1號是星期幾
663 Date date = VeDate.strToDate(sdate);
664 Calendar c = Calendar.getInstance();
665 c.setTime(date);
666 int u = c.get(Calendar.DAY_OF_WEEK);
667 String newday = VeDate.getNextDay(sdate, (1 - u) + "");
668 return newday;
669 }
670
671 /**
672 * 取得數據庫主鍵 生成格式為yyyymmddhhmmss+k位隨機數
673 *
674 * @param k
675 * 表示是取幾位隨機數,可以自己定
676 */
677
678 public static String getNo(int k) {
679
680 return getUserDate("yyyyMMddhhmmss") + getRandom(k);
681 }
682
683 /**
684 * 返回一個隨機數
685 *
686 * @param i
687 * @return
688 */
689 public static String getRandom(int i) {
690 Random jjj = new Random();
691 // int suiJiShu = jjj.nextInt(9);
692 if (i == 0)
693 return "";
694 String jj = "";
695 for (int k = 0; k < i; k++) {
696 jj = jj + jjj.nextInt(9);
697 }
698 return jj;
699 }
700
701 /**
702 *
703 * @param args
704 */
705 public static boolean RightDate(String date) {
706
707 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
708 ;
709 if (date == null)
710 return false;
711 if (date.length() > 10) {
712 sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
713 } else {
714 sdf = new SimpleDateFormat("yyyy-MM-dd");
715 }
716 try {
717 sdf.parse(date);
718 } catch (ParseException pe) {
719 return false;
720 }
721 return true;
722 }
723
724 /***************************************************************************
725 * //nd=1表示返回的值中包含年度 //yf=1表示返回的值中包含月份 //rq=1表示返回的值中包含日期 //format表示返回的格式 1
726 * 以年月日中文返回 2 以橫線-返回 // 3 以斜線/返回 4 以縮寫不帶其它符號形式返回 // 5 以點號.返回
727 **************************************************************************/
728 public static String getStringDateMonth(String sdate, String nd, String yf, String rq, String format) {
729 Date currentTime = new Date();
730 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
731 String dateString = formatter.format(currentTime);
732 String s_nd = dateString.substring(0, 4); // 年份
733 String s_yf = dateString.substring(5, 7); // 月份
734 String s_rq = dateString.substring(8, 10); // 日期
735 String sreturn = "";
736 roc.util.MyChar mc = new roc.util.MyChar();
737 if (sdate == null || sdate.equals("") || !mc.Isdate(sdate)) { // 處理空值情況
738 if (nd.equals("1")) {
739 sreturn = s_nd;
740 // 處理間隔符
741 if (format.equals("1"))
742 sreturn = sreturn + "年";
743 else if (format.equals("2"))
744 sreturn = sreturn + "-";
745 else if (format.equals("3"))
746 sreturn = sreturn + "/";
747 else if (format.equals("5"))
748 sreturn = sreturn + ".";
749 }
750 // 處理月份
751 if (yf.equals("1")) {
752 sreturn = sreturn + s_yf;
753 if (format.equals("1"))
754 sreturn = sreturn + "月";
755 else if (format.equals("2"))
756 sreturn = sreturn + "-";
757 else if (format.equals("3"))
758 sreturn = sreturn + "/";
759 else if (format.equals("5"))
760 sreturn = sreturn + ".";
761 }
762 // 處理日期
763 if (rq.equals("1")) {
764 sreturn = sreturn + s_rq;
765 if (format.equals("1"))
766 sreturn = sreturn + "日";
767 }
768 } else {
769 // 不是空值,也是一個合法的日期值,則先將其轉換為標準的時間格式
770 sdate = roc.util.RocDate.getOKDate(sdate);
771 s_nd = sdate.substring(0, 4); // 年份
772 s_yf = sdate.substring(5, 7); // 月份
773 s_rq = sdate.substring(8, 10); // 日期
774 if (nd.equals("1")) {
775 sreturn = s_nd;
776 // 處理間隔符
777 if (format.equals("1"))
778 sreturn = sreturn + "年";
779 else if (format.equals("2"))
780 sreturn = sreturn + "-";
781 else if (format.equals("3"))
782 sreturn = sreturn + "/";
783 else if (format.equals("5"))
784 sreturn = sreturn + ".";
785 }
786 // 處理月份
787 if (yf.equals("1")) {
788 sreturn = sreturn + s_yf;
789 if (format.equals("1"))
790 sreturn = sreturn + "月";
791 else if (format.equals("2"))
792 sreturn = sreturn + "-";
793 else if (format.equals("3"))
794 sreturn = sreturn + "/";
795 else if (format.equals("5"))
796 sreturn = sreturn + ".";
797 }
798 // 處理日期
799 if (rq.equals("1")) {
800 sreturn = sreturn + s_rq;
801 if (format.equals("1"))
802 sreturn = sreturn + "日";
803 }
804 }
805 return sreturn;
806 }
807
808 public static String getNextMonthDay(String sdate, int m) {
809 sdate = getOKDate(sdate);
810 int year = Integer.parseInt(sdate.substring(0, 4));
811 int month = Integer.parseInt(sdate.substring(5, 7));
812 month = month + m;
813 if (month < 0) {
814 month = month + 12;
815 year = year - 1;
816 } else if (month > 12) {
817 month = month - 12;
818 year = year + 1;
819 }
820 String smonth = "";
821 if (month < 10)
822 smonth = "0" + month;
823 else
824 smonth = "" + month;
825 return year + "-" + smonth + "-10";
826 }
827
828 public static String getOKDate(String sdate) {
829 if (sdate == null || sdate.equals(""))
830 return getStringDateShort();
831
832 if (!VeStr.Isdate(sdate)) {
833 sdate = getStringDateShort();
834 }
835 // 將“/”轉換為“-”
836 sdate = VeStr.Replace(sdate, "/", "-");
837 // 如果只有8位長度,則要進行轉換
838 if (sdate.length() == 8)
839 sdate = sdate.substring(0, 4) + "-" + sdate.substring(4, 6) + "-" + sdate.substring(6, 8);
840 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
841 ParsePosition pos = new ParsePosition(0);
842 Date strtodate = formatter.parse(sdate, pos);
843 String dateString = formatter.format(strtodate);
844 return dateString;
845 }
846
847 public static void main(String[] args) throws Exception {
848 try {
849 //System.out.print(Integer.valueOf(getTwoDay("2006-11-03 12:22:10", "2006-11-02 11:22:09")));
850 } catch (Exception e) {
851 throw new Exception();
852 }
853 //System.out.println("sss");
854 }
855
856 轉自:http://www.rzrgm.cn/shouce/p/5199729.html#top