java學習
import
java.util.*;
002
java.text.*;
003
java.util.Calendar;
004
public
class
VeDate {
005
/**
006
* 獲取現(xiàn)在時間
007
*
008
* <a target="_blank" rel="nofollow">@return</a> 返回時間類型 yyyy-MM-dd HH:mm:ss
009
*/
010
static
Date getNowDate() {
011
Date currentTime =
new
Date();
012
SimpleDateFormat formatter =
SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss"
);
013
String dateString = formatter.format(currentTime);
014
ParsePosition pos =
ParsePosition(
8
015
Date currentTime_2 = formatter.parse(dateString, pos);
016
return
currentTime_2;
017
}
018
019
020
021
* @return返回短時間格式 yyyy-MM-dd
022
023
Date getNowDateShort() {
024
025
"yyyy-MM-dd"
026
027
028
029
030
031
032
033
034
* @return返回字符串格式 yyyy-MM-dd HH:mm:ss
035
036
String getStringDate() {
037
038
039
040
dateString;
041
042
043
044
045
* <a target="_blank" rel="nofollow">@return</a> 返回短時間字符串格式y(tǒng)yyy-MM-dd
046
047
String getStringDateShort() {
048
049
050
051
052
053
054
* 獲取時間 小時:分;秒 HH:mm:ss
055
056
* <a target="_blank" rel="nofollow">@return</a>
057
058
String getTimeShort() {
059
"HH:mm:ss"
060
061
062
063
064
065
* 將長時間格式字符串轉(zhuǎn)換為時間 yyyy-MM-dd HH:mm:ss
066
067
* @param strDate
068
069
070
Date strToDateLong(String strDate) {
071
072
0
073
Date strtodate = formatter.parse(strDate, pos);
074
strtodate;
075
076
077
* 將長時間格式時間轉(zhuǎn)換為字符串 yyyy-MM-dd HH:mm:ss
078
079
* @param dateDate
080
081
082
String dateToStrLong(java.util.Date dateDate) {
083
084
String dateString = formatter.format(dateDate);
085
086
087
088
* 將短時間格式時間轉(zhuǎn)換為字符串 yyyy-MM-dd
089
090
091
* @param k
092
093
094
String dateToStr(java.util.Date dateDate) {
095
096
097
098
099
100
* 將短時間格式字符串轉(zhuǎn)換為時間 yyyy-MM-dd
101
102
103
104
105
Date strToDate(String strDate) {
106
107
108
109
110
111
112
* 得到現(xiàn)在時間
113
114
115
116
Date getNow() {
117
118
currentTime;
119
120
121
* 提取一個月中的最后一天
122
123
* @param day
124
125
126
Date getLastDate(
long
day) {
127
Date date =
128
date_3_hm = date.getTime() -
3600000
34
* day;
129
Date date_3_hm_date =
Date(date_3_hm);
130
date_3_hm_date;
131
132
133
134
135
* <a target="_blank" rel="nofollow">@return</a> 字符串 yyyyMMdd HHmmss
136
137
String getStringToday() {
138
139
"yyyyMMdd HHmmss"
140
141
142
143
144
* 得到現(xiàn)在小時
145
146
String getHour() {
147
148
149
150
String hour;
151
hour = dateString.substring(
11
,
13
152
hour;
153
154
155
* 得到現(xiàn)在分鐘
156
157
158
159
String getTime() {
160
161
162
163
String min;
164
min = dateString.substring(
14
16
165
min;
166
167
168
* 根據(jù)用戶傳入的時間表示格式,返回當前時間的格式 如果是yyyyMMdd,注意字母y不能大寫。
169
170
* @param sformat
171
* yyyyMMddhhmmss
172
173
174
String getUserDate(String sformat) {
175
176
SimpleDateFormat(sformat);
177
178
179
180
181
* 二個小時時間間的差值,必須保證二個時間都是"HH:MM"的格式,返回字符型的分鐘
182
183
String getTwoHour(String st1, String st2) {
184
String[] kk =
null
;
185
String[] jj =
186
kk = st1.split(
":"
187
jj = st2.split(
188
if
(Integer.parseInt(kk[
]) < Integer.parseInt(jj[
]))
189
"0"
190
else
{
191
double
y = Double.parseDouble(kk[
]) + Double.parseDouble(kk[
1
]) /
60
192
u = Double.parseDouble(jj[
]) + Double.parseDouble(jj[
193
((y - u) >
)
194
y - u +
""
195
196
197
198
199
200
* 得到二個日期間的間隔天數(shù)
201
202
String getTwoDay(String sj1, String sj2) {
203
SimpleDateFormat myFormatter =
204
day =
205
try
206
java.util.Date date = myFormatter.parse(sj1);
207
java.util.Date mydate = myFormatter.parse(sj2);
208
day = (date.getTime() - mydate.getTime()) / (
24
1000
209
catch
(Exception e) {
210
211
212
day +
213
214
215
* 時間前推或后推分鐘,其中JJ表示分鐘.
216
217
String getPreTime(String sj1, String jj) {
218
SimpleDateFormat format =
219
String mydate1 =
220
221
Date date1 = format.parse(sj1);
222
Time = (date1.getTime() /
) + Integer.parseInt(jj) *
223
date1.setTime(Time *
224
mydate1 = format.format(date1);
225
226
227
mydate1;
228
229
230
* 得到一個時間延后或前移幾天的時間,nowdate為時間,delay為前移或后延的天數(shù)
231
232
String getNextDay(String nowdate, String delay) {
233
234
235
String mdate =
236
Date d = strToDate(nowdate);
237
myTime = (d.getTime() /
) + Integer.parseInt(delay) *
238
d.setTime(myTime *
239
mdate = format.format(d);
240
mdate;
241
(Exception e){
242
243
244
245
246
* 判斷是否潤年
247
248
* @param ddate
249
250
251
boolean
isLeapYear(String ddate) {
252
253
* 詳細設計: 1.被400整除是閏年,否則: 2.不能被4整除則不是閏年 3.能被4整除同時不能被100整除則是閏年
254
* 3.能被4整除同時能被100整除則不是閏年
255
256
Date d = strToDate(ddate);
257
GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
258
gc.setTime(d);
259
int
year = gc.get(Calendar.YEAR);
260
((year %
400
) ==
261
true
262
4
) {
263
264
false
265
266
267
268
269
270
271
* 返回美國時間格式 26 Apr 2006
272
273
* @param str
274
275
276
String getEDate(String str) {
277
278
279
Date strtodate = formatter.parse(str, pos);
280
String j = strtodate.toString();
281
String[] k = j.split(
" "
282
k[
2
] + k[
].toUpperCase() + k[
5
].substring(
283
284
285
* 獲取一個月的最后一天
286
287
* @param dat
288
289
290
String getEndDateOfMonth(String dat) {
// yyyy-MM-dd
291
String str = dat.substring(
292
String month = dat.substring(
7
293
mon = Integer.parseInt(month);
294
(mon ==
|| mon ==
3
10
12
295
str +=
"31"
296
6
9
297
"30"
298
299
(isLeapYear(dat)) {
300
"29"
301
302
"28"
303
304
305
str;
306
307
308
* 判斷二個時間是否在同一個周
309
310
* @param date1
311
* @param date2
312
313
314
isSameWeekDates(Date date1, Date date2) {
315
Calendar cal1 = Calendar.getInstance();
316
Calendar cal2 = Calendar.getInstance();
317
cal1.setTime(date1);
318
cal2.setTime(date2);
319
subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
320
(
== subYear) {
321
(cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
322
323
== subYear &&
== cal2.get(Calendar.MONTH)) {
324
// 如果12月的最后一周橫跨來年第一周的話則最后一周即算做來年的第一周
325
326
327
(-
== cal1.get(Calendar.MONTH)) {
328
329
330
331
332
333
334
* 產(chǎn)生周序列,即得到當前時間所在的年度是第幾周
335
336
337
338
String getSeqWeek() {
339
Calendar c = Calendar.getInstance(Locale.CHINA);
340
String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
341
(week.length() ==
342
week =
+ week;
343
String year = Integer.toString(c.get(Calendar.YEAR));
344
year + week;
345
346
347
* 獲得一個日期所在的周的星期幾的日期,如要找出2002年2月3日所在周的星期一是幾號
348
349
* @param sdate
350
* @param num
351
352
353
String getWeek(String sdate, String num) {
354
// 再轉(zhuǎn)換為時間
355
Date dd = VeDate.strToDate(sdate);
356
Calendar c = Calendar.getInstance();
357
c.setTime(dd);
358
(num.equals(
"1"
))
// 返回星期一所在的日期
359
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
360
"2"
// 返回星期二所在的日期
361
c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
362
"3"
// 返回星期三所在的日期
363
c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
364
"4"
// 返回星期四所在的日期
365
c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
366
"5"
// 返回星期五所在的日期
367
c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
368
"6"
// 返回星期六所在的日期
369
c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
370
// 返回星期日所在的日期
371
c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
372
).format(c.getTime());
373
374
375
* 根據(jù)一個日期,返回是星期幾的字符串
376
377
378
379
380
String getWeek(String sdate) {
381
382
Date date = VeDate.strToDate(sdate);
383
384
c.setTime(date);
385
// int hour=c.get(Calendar.DAY_OF_WEEK);
386
// hour中存的就是星期幾了,其范圍 1~7
387
// 1=星期日 7=星期六,其他類推
388
"EEEE"
389
390
String getWeekStr(String sdate){
391
String str =
392
str = VeDate.getWeek(sdate);
393
.equals(str)){
394
str =
"星期日"
395
396
"星期一"
397
398
"星期二"
399
"星期三"
401
402
"星期四"
403
404
"星期五"
405
"7"
406
"星期六"
407
408
409
410
411
* 兩個時間之間的天數(shù)
412
413
414
415
416
417
getDays(String date1, String date2) {
418
(date1 ==
|| date1.equals(
419
420
(date2 ==
|| date2.equals(
421
422
// 轉(zhuǎn)換為標準時間
423
424
java.util.Date date =
425
java.util.Date mydate =
426
427
date = myFormatter.parse(date1);
428
mydate = myFormatter.parse(date2);
429
430
431
432
day;
433
434
435
* 形成如下的日歷 , 根據(jù)傳入的一個時間返回一個結(jié)構(gòu) 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是當月的各個時間
436
* 此函數(shù)返回該日歷第一行星期日所在的日期
437
438
439
440
441
String getNowMonth(String sdate) {
442
// 取該時間所在月的一號
443
sdate = sdate.substring(
) +
"01"
444
// 得到這個月的1號是星期幾
445
446
447
448
u = c.get(Calendar.DAY_OF_WEEK);
449
String newday = VeDate.getNextDay(sdate, (
- u) +
450
newday;
451
452
453
* 取得數(shù)據(jù)庫主鍵 生成格式為yyyymmddhhmmss+k位隨機數(shù)
454
455
456
* 表示是取幾位隨機數(shù),可以自己定
457
458
String getNo(
k) {
459
getUserDate(
"yyyyMMddhhmmss"
) + getRandom(k);
460
461
462
* 返回一個隨機數(shù)
463
464
* @param i
465
466
467
String getRandom(
i) {
468
Random jjj =
Random();
469
// int suiJiShu = jjj.nextInt(9);
470
(i ==
471
472
String jj =
473
for
k =
; k < i; k++) {
474
jj = jj + jjj.nextInt(
475
476
jj;
477
478
479
480
* @param args
481
482
RightDate(String date) {
483
SimpleDateFormat sdf =
"yyyy-MM-dd hh:mm:ss"
484
485
(date ==
486
487
(date.length() >
488
sdf =
489
490
491
492
493
sdf.parse(date);
494
(ParseException pe) {
495
496
497
498
499
/***************************************************************************
500
* //nd=1表示返回的值中包含年度 //yf=1表示返回的值中包含月份 //rq=1表示返回的值中包含日期 //format表示返回的格式 1
501
* 以年月日中文返回 2 以橫線-返回 // 3 以斜線/返回 4 以縮寫不帶其它符號形式返回 // 5 以點號.返回
502
**************************************************************************/
503
String getStringDateMonth(String sdate, String nd, String yf, String rq, String format) {
504
505
506
507
String s_nd = dateString.substring(
// 年份
508
String s_yf = dateString.substring(
// 月份
509
String s_rq = dateString.substring(
// 日期
510
String sreturn =
511
roc.util.MyChar mc =
roc.util.MyChar();
512
(sdate ==
|| sdate.equals(
) || !mc.Isdate(sdate)) {
// 處理空值情況
513
(nd.equals(
)) {
514
sreturn = s_nd;
515
// 處理間隔符
516
(format.equals(
517
sreturn = sreturn +
"年"
518
519
"-"
520
521
"/"
522
523
"."
524
525
// 處理月份
526
(yf.equals(
527
sreturn = sreturn + s_yf;
528
529
"月"
530
531
532
533
534
535
536
537
// 處理日期
538
(rq.equals(
539
sreturn = sreturn + s_rq;
540
541
"日"
542
543
544
// 不是空值,也是一個合法的日期值,則先將其轉(zhuǎn)換為標準的時間格式
545
sdate = roc.util.RocDate.getOKDate(sdate);
546
s_nd = sdate.substring(
547
s_yf = sdate.substring(
548
s_rq = sdate.substring(
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
sreturn;
581
582
String getNextMonthDay(String sdate,
m) {
583
sdate = getOKDate(sdate);
584
year = Integer.parseInt(sdate.substring(
));
585
month = Integer.parseInt(sdate.substring(
586
month = month + m;
587
(month <
588
month = month +
589
year = year -
590
(month >
591
month = month -
592
year = year +
593
594
String smonth =
595
596
smonth =
+ month;
597
598
599
year +
+ smonth +
"-10"
600
601
String getOKDate(String sdate) {
602
603
getStringDateShort();
604
(!VeStr.Isdate(sdate)) {
605
sdate = getStringDateShort();
606
607
// 將“/”轉(zhuǎn)換為“-”
608
sdate = VeStr.Replace(sdate,
609
// 如果只有8位長度,則要進行轉(zhuǎn)換
610
(sdate.length() ==
611
+ sdate.substring(
612
613
614
Date strtodate = formatter.parse(sdate, pos);
615
String dateString = formatter.format(strtodate);
616
617
618
void
main(String[] args)
throws
Exception {
619
620
//System.out.print(Integer.valueOf(getTwoDay("2006-11-03 12:22:10", "2006-11-02 11:22:09")));
621
622
throw
Exception();
623
624
//System.out.println("sss");
625
626
posted on 2013-01-18 15:29 楊軍威 閱讀(260) 評論(0) 編輯 收藏
Powered by: BlogJava Copyright © 楊軍威