/**
*
獲取現在時間
*
*
@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) {
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)) {
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);
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"
;
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();
if
(i ==
0
)
return
""
;
String
jj =
""
;
for
(
int
k =
0
;
k < i; k++) {
jj
= jj + jjj.nextInt(
9
);
}
return
jj;
}
/***************************************************************************
*
//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;
}