Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
C
common
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
曲欣亮
common
Commits
fc76d85a
Commit
fc76d85a
authored
Jul 12, 2019
by
张永
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
加个时区方法
parent
6b2beab5
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
200 additions
and
147 deletions
+200
-147
DateUtil.java
src/main/java/com/egolm/common/DateUtil.java
+200
-147
No files found.
src/main/java/com/egolm/common/DateUtil.java
View file @
fc76d85a
...
...
@@ -16,7 +16,7 @@ import java.util.regex.Matcher;
import
java.util.regex.Pattern
;
public
class
DateUtil
{
public
static
final
String
FMT_HH
=
"HH"
;
public
static
final
String
FMT_DATE_HH
=
"yyyy-MM-dd HH"
;
public
static
final
String
FMT_TIME
=
"HH:mm:ss"
;
...
...
@@ -32,43 +32,55 @@ public class DateUtil {
public
static
final
String
FMT_DATE_ISO
=
"yyyy-MM-ddTHH:mm:ss.SSSZ"
;
public
static
final
String
FMT_UTC_GMT
=
"EEE, dd MMM yyyy HH:mm:ss z"
;
public
static
final
String
FMT_YYYYMMddHHMMSS
=
"yyyyMMddHHmmss"
;
public
static
final
String
FMT_UTC_ALIYUN
=
"YYYY-MM-DD'T'hh:mm:ss'Z'"
;
public
static
final
String
FMT_YYYY_MM
=
"yyyy-MM"
;
public
static
final
String
FMT_UTC_ALIYUN
=
"YYYY-MM-DD'T'hh:mm:ss'Z'"
;
public
static
final
String
FMT_YYYY_MM
=
"yyyy-MM"
;
public
static
final
Long
SECOND
=
1000L
;
public
static
final
Long
MINUTE
=
1000L
*
60
;
public
static
final
Long
HALF_HOUR
=
MINUTE
*
30
;
public
static
final
Long
HOUR
=
HALF_HOUR
*
2
;
public
static
final
Long
HALF_DAY
=
HOUR
*
12
;
public
static
final
Long
DAY
=
HALF_DAY
*
2
;
public
static
final
Long
MINUTE
=
1000L
*
60
;
public
static
final
Long
HALF_HOUR
=
MINUTE
*
30
;
public
static
final
Long
HOUR
=
HALF_HOUR
*
2
;
public
static
final
Long
HALF_DAY
=
HOUR
*
12
;
public
static
final
Long
DAY
=
HALF_DAY
*
2
;
private
static
final
Map
<
Pattern
,
String
>
PATTERN_DATE
=
new
LinkedHashMap
<
Pattern
,
String
>();
static
{
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(([1-2][0-9]{3})年(([0]?[1-9])|([1][0-2]))月(([0]?[1-9])|([1-2][0-9])|([3][0-1]))日\\s+\\d{1,2}时\\d{1,2}分\\d{1,2}秒)"
),
"yyyy年MM月dd日 HH时mm分ss秒"
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(([1-2][0-9]{3})年(([0]?[1-9])|([1][0-2]))月(([0]?[1-9])|([1-2][0-9])|([3][0-1]))日\\s+\\d{1,2}:\\d{1,2}:\\d{1,2})"
),
"yyyy年MM月dd日 HH:mm:ss"
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(([1-2][0-9]{3})年(([0]?[1-9])|([1][0-2]))月(([0]?[1-9])|([1-2][0-9])|([3][0-1]))日)"
),
"yyyy年MM月dd日"
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(([1-2][0-9]{3})年(([0]?[1-9])|([1][0-2]))月(([0]?[1-9])|([1-2][0-9])|([3][0-1]))日\\s+\\d{1,2}时\\d{1,2}分\\d{1,2}秒)"
),
"yyyy年MM月dd日 HH时mm分ss秒"
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(([1-2][0-9]{3})年(([0]?[1-9])|([1][0-2]))月(([0]?[1-9])|([1-2][0-9])|([3][0-1]))日\\s+\\d{1,2}:\\d{1,2}:\\d{1,2})"
),
"yyyy年MM月dd日 HH:mm:ss"
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(([1-2][0-9]{3})年(([0]?[1-9])|([1][0-2]))月(([0]?[1-9])|([1-2][0-9])|([3][0-1]))日)"
),
"yyyy年MM月dd日"
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(([1-2][0-9]{3})年(([0]?[1-9])|([1][0-2]))月)"
),
"yyyy年MM月"
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(([1-2][0-9]{3})年)"
),
"yyyy年"
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z)"
),
DateUtil
.
FMT_DATE_ISO
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{1,2}:\\d{1,2})"
),
DateUtil
.
FMT_A_DATE_SECOND
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{1,2})"
),
DateUtil
.
FMT_A_DATE_MINUTE
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{1,2}:\\d{1,2})"
),
DateUtil
.
FMT_A_DATE_SECOND
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(\\d{4}/\\d{1,2}/\\d{1,2}\\s+\\d{1,2}:\\d{1,2})"
),
DateUtil
.
FMT_A_DATE_MINUTE
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(\\d{4}/\\d{1,2}/\\d{1,2})"
),
DateUtil
.
FMT_A_DATE
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(\\d{4}-\\d{1,2}-\\d{1,2}\\s+\\d{1,2}:\\d{1,2}:\\d{1,2})"
),
DateUtil
.
FMT_DATE_SECOND
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(\\d{4}-\\d{1,2}-\\d{1,2}\\s+\\d{1,2}:\\d{1,2}:\\d{1,2})"
),
DateUtil
.
FMT_DATE_SECOND
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(\\d{4}-\\d{1,2}-\\d{1,2}\\s+\\d{1,2}:\\d{1,2})"
),
DateUtil
.
FMT_DATE_MINUTE
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(\\d{4}-\\d{1,2}-\\d{1,2})"
),
DateUtil
.
FMT_DATE
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(([1-2][0-9]{3})(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1])))"
),
"yyyyMMdd"
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(([1-2][0-9]{3})(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1])))"
),
"yyyyMMdd"
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"(([1-2][0-9]{3})(([0][1-9])|([1][0-2])))"
),
"yyyyMM"
);
PATTERN_DATE
.
put
(
Pattern
.
compile
(
"([1-2][0-9]{3})"
),
"yyyy"
);
}
/**
* 将日期字符串转化成日期类型
*
* @param date
* @param fmt
* @return
...
...
@@ -83,23 +95,24 @@ public class DateUtil {
throw
new
RuntimeException
(
date
+
" parse to"
+
fmt
,
e
);
}
}
/**
* 自动判断日期字符串格式并将其转化为日期类型
*
* @param str
* @return
*/
public
static
Date
parse
(
Object
obj
)
{
if
(
obj
instanceof
Date
)
{
return
new
Date
(((
Date
)
obj
).
getTime
());
if
(
obj
instanceof
Date
)
{
return
new
Date
(((
Date
)
obj
).
getTime
());
}
else
{
String
str
=
String
.
valueOf
(
obj
).
trim
();
if
(
StringUtil
.
isNotEmpty
(
str
))
{
for
(
Pattern
pattern
:
PATTERN_DATE
.
keySet
())
{
if
(
StringUtil
.
isNotEmpty
(
str
))
{
for
(
Pattern
pattern
:
PATTERN_DATE
.
keySet
())
{
Matcher
matcher
=
pattern
.
matcher
(
str
);
if
(
matcher
.
find
())
{
if
(
matcher
.
find
())
{
String
date_str
=
matcher
.
group
(
1
);
if
(
PATTERN_DATE
.
get
(
pattern
).
equals
(
DateUtil
.
FMT_DATE_ISO
))
{
if
(
PATTERN_DATE
.
get
(
pattern
).
equals
(
DateUtil
.
FMT_DATE_ISO
))
{
return
parseISODate
(
date_str
);
}
else
{
return
parse
(
date_str
,
PATTERN_DATE
.
get
(
pattern
));
...
...
@@ -110,27 +123,27 @@ public class DateUtil {
return
null
;
}
}
public
static
Date
parseISODate
(
String
isoDate
)
{
isoDate
=
isoDate
.
replace
(
"T"
,
" "
).
replace
(
"Z"
,
""
);
Date
date
=
parse
(
isoDate
);
java
.
util
.
Calendar
cal
=
java
.
util
.
Calendar
.
getInstance
();
cal
.
setTime
(
date
);
int
zoneOffset
=
cal
.
get
(
java
.
util
.
Calendar
.
ZONE_OFFSET
);
int
dstOffset
=
cal
.
get
(
java
.
util
.
Calendar
.
DST_OFFSET
);
cal
.
add
(
Calendar
.
MILLISECOND
,
(
zoneOffset
+
dstOffset
));
return
cal
.
getTime
();
}
java
.
util
.
Calendar
cal
=
java
.
util
.
Calendar
.
getInstance
();
cal
.
setTime
(
date
);
int
zoneOffset
=
cal
.
get
(
java
.
util
.
Calendar
.
ZONE_OFFSET
);
int
dstOffset
=
cal
.
get
(
java
.
util
.
Calendar
.
DST_OFFSET
);
cal
.
add
(
Calendar
.
MILLISECOND
,
(
zoneOffset
+
dstOffset
));
return
cal
.
getTime
();
}
public
static
boolean
isDate
(
Object
obj
)
{
if
(
obj
instanceof
Date
)
{
if
(
obj
instanceof
Date
)
{
return
true
;
}
else
{
String
str
=
String
.
valueOf
(
obj
);
if
(
StringUtil
.
isNotEmpty
(
str
))
{
if
(
StringUtil
.
isNotEmpty
(
str
))
{
String
date_str
=
str
.
trim
();
for
(
Pattern
pattern
:
PATTERN_DATE
.
keySet
())
{
if
(
pattern
.
matcher
(
date_str
).
find
())
{
for
(
Pattern
pattern
:
PATTERN_DATE
.
keySet
())
{
if
(
pattern
.
matcher
(
date_str
).
find
())
{
return
true
;
}
}
...
...
@@ -138,33 +151,36 @@ public class DateUtil {
return
false
;
}
}
/**
* 格式化日期为字符串
*
* @param date
* @param fmt
* @return
*/
public
static
String
format
(
Date
date
,
String
fmt
)
{
if
(
date
==
null
)
{
if
(
date
==
null
)
{
return
null
;
}
else
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
fmt
);
return
sdf
.
format
(
date
);
}
}
/**
* 格式化为yyyy-MM-dd格式
* @param date 时间参数
*
* @param date 时间参数
* @return yyyy-MM-dd
*/
public
static
String
formatDate
(
Date
date
)
{
return
format
(
date
,
DateUtil
.
FMT_DATE
);
}
/**
* 格式化日期为yyyy-MM-dd HH:mm:ss格式
*
* @param date
* @return yyyy-MM-dd HH:mm:ss
*/
...
...
@@ -172,27 +188,27 @@ public class DateUtil {
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
DateUtil
.
FMT_DATE_SECOND
);
return
sdf
.
format
(
date
);
}
public
static
String
formatUTCDate
(
Date
date
)
{
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"EEE, dd MMM yyyy HH:mm:ss z"
,
Locale
.
ENGLISH
);
dateFormat
.
setTimeZone
(
new
SimpleTimeZone
(
0
,
"UTC"
));
return
dateFormat
.
format
(
date
);
dateFormat
.
setTimeZone
(
new
SimpleTimeZone
(
0
,
"UTC"
));
return
dateFormat
.
format
(
date
);
}
public
static
String
formatGMTDate
(
Date
date
)
{
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"EEE, dd MMM yyyy HH:mm:ss z"
,
Locale
.
ENGLISH
);
dateFormat
.
setTimeZone
(
new
SimpleTimeZone
(
0
,
"GMT"
));
return
dateFormat
.
format
(
date
);
dateFormat
.
setTimeZone
(
new
SimpleTimeZone
(
0
,
"GMT"
));
return
dateFormat
.
format
(
date
);
}
/**
* 将毫秒数格式化成默认格式日期字符串
*
默认格式:yyyy-MM-dd HH:mm:ss
* 将毫秒数格式化成默认格式日期字符串
默认格式:yyyy-MM-dd HH:mm:ss
*
* @param time
* @return
*/
public
static
String
format
(
Long
time
)
{
if
(
time
!=
null
)
{
if
(
time
!=
null
)
{
Date
date
=
new
Date
(
time
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
DateUtil
.
FMT_DATE_SECOND
);
return
sdf
.
format
(
date
);
...
...
@@ -200,15 +216,16 @@ public class DateUtil {
return
null
;
}
}
/**
* 将毫秒数格式化为制定格式的日期字符串
*
* @param time
* @param fmt
* @return
*/
public
static
String
format
(
Long
time
,
String
fmt
)
{
if
(
time
!=
null
)
{
if
(
time
!=
null
)
{
Date
date
=
new
Date
(
time
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
fmt
);
return
sdf
.
format
(
date
);
...
...
@@ -218,26 +235,26 @@ public class DateUtil {
}
/**
* 将毫秒数格式化为时间格式字符串
*
毫秒数必须小于86400000
* 将毫秒数格式化为时间格式字符串
毫秒数必须小于86400000
*
* @param time
* @return
*/
public
static
String
format
(
Integer
time
)
{
return
format
(
time
,
DateUtil
.
FMT_TIME
);
}
/**
* 将毫秒数格式化为时间格式字符串
*
毫秒数必须小于86400000
* 将毫秒数格式化为时间格式字符串
毫秒数必须小于86400000
*
* @param time
* @param fmt
* @return
*/
public
static
String
format
(
Integer
time
,
String
fmt
)
{
if
(
time
!=
null
)
{
if
(
time
<
86400000
)
{
Date
date
=
new
Date
(
time
-
(
1000
*
60
*
60
*
8
));
if
(
time
!=
null
)
{
if
(
time
<
86400000
)
{
Date
date
=
new
Date
(
time
-
(
1000
*
60
*
60
*
8
));
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
fmt
);
return
sdf
.
format
(
date
);
}
else
{
...
...
@@ -247,9 +264,10 @@ public class DateUtil {
return
null
;
}
}
/**
* 计算指定时间当天的开始时间
*
* @param time
* @return
* @throws ParseException
...
...
@@ -258,59 +276,64 @@ public class DateUtil {
Long
start
=
start
(
time
==
null
?
new
Date
()
:
time
).
getTime
();
return
new
Date
(
start
+
HALF_DAY
);
}
/**
* 计算指定时间当天的开始时间
*
* @param time
* @return
* @throws ParseException
*/
public
static
Date
start
(
Date
time
)
{
if
(
time
!=
null
)
{
if
(
time
!=
null
)
{
return
parse
(
format
(
time
,
DateUtil
.
FMT_DATE
),
DateUtil
.
FMT_DATE
);
}
else
{
return
null
;
}
}
/**
* 计算指定日期当天的最后时间
*
* @param time
* @return
* @throws ParseException
* @throws ParseException
*/
public
static
Date
end
(
Date
time
)
{
if
(
time
!=
null
)
{
return
new
Date
(
start
(
new
Date
(
time
.
getTime
()
+
(
24L
*
60L
*
60L
*
1000L
))).
getTime
());
if
(
time
!=
null
)
{
return
new
Date
(
start
(
new
Date
(
time
.
getTime
()
+
(
24L
*
60L
*
60L
*
1000L
))).
getTime
());
}
else
{
return
null
;
}
}
/**
* 取得当前时间向后或向前若干天的时间
*
* @param time
* @param offset
* @return
*/
public
static
Date
day
(
Date
time
,
Integer
offset
)
{
Date
date
=
new
Date
(
time
.
getTime
()
+
(
offset
*
86400000L
));
Date
date
=
new
Date
(
time
.
getTime
()
+
(
offset
*
86400000L
));
return
date
;
}
/**
* 计算指定的日期是星期几,返回数字 周日至周六分别是0-6
*
* @param date
* @return
*/
public
static
Integer
week
(
Date
date
)
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
date
);
calendar
.
setTime
(
date
);
return
calendar
.
get
(
Calendar
.
DAY_OF_WEEK
)
-
1
;
}
/**
* 计算两天之间相隔多少天
*
* @param start
* @param end
* @return
...
...
@@ -318,11 +341,12 @@ public class DateUtil {
public
static
Integer
days
(
Date
start
,
Date
end
)
{
Date
date_start
=
start
(
start
);
Date
date_end
=
start
(
end
);
return
(
int
)((
date_end
.
getTime
()
-
date_start
.
getTime
())
/
86400000L
);
return
(
int
)
((
date_end
.
getTime
()
-
date_start
.
getTime
())
/
86400000L
);
}
/**
* 判断是否是今天
*
* @param date
* @return
*/
...
...
@@ -330,87 +354,93 @@ public class DateUtil {
Date
today
=
new
Date
();
Date
start
=
start
(
today
);
Date
end
=
end
(
today
);
if
(
date
.
getTime
()
>=
start
.
getTime
()
&&
date
.
getTime
()
<
end
.
getTime
())
{
if
(
date
.
getTime
()
>=
start
.
getTime
()
&&
date
.
getTime
()
<
end
.
getTime
())
{
return
true
;
}
else
{
return
false
;
}
}
/**
* 取得当前日期是多少周
* @param date
* @return
*/
* 取得当前日期是多少周
*
* @param date
* @return
*/
public
static
int
getWeekOfYear
(
Date
date
)
{
Calendar
c
=
new
GregorianCalendar
();
c
.
setFirstDayOfWeek
(
Calendar
.
MONDAY
);
c
.
setMinimalDaysInFirstWeek
(
7
);
c
.
setTime
(
date
);
c
.
setTime
(
date
);
return
c
.
get
(
Calendar
.
WEEK_OF_YEAR
);
}
/**
* 得到某一年周的总数
* @param year
* @return
*/
public
static
int
getMaxWeekNumOfYear
(
int
year
)
{
* 得到某一年周的总数
*
* @param year
* @return
*/
public
static
int
getMaxWeekNumOfYear
(
int
year
)
{
Calendar
c
=
new
GregorianCalendar
();
c
.
set
(
year
,
Calendar
.
DECEMBER
,
31
,
23
,
59
,
59
);
return
getWeekOfYear
(
c
.
getTime
());
}
/**
* 得到某年某周的第一天
* @param year
* @param week
* @return
*/
* 得到某年某周的第一天
*
* @param year
* @param week
* @return
*/
public
static
Date
getFirstDayOfWeek
(
int
year
,
int
week
)
{
Calendar
c
=
new
GregorianCalendar
();
c
.
set
(
Calendar
.
YEAR
,
year
);
c
.
set
(
Calendar
.
MONTH
,
Calendar
.
JANUARY
);
c
.
set
(
Calendar
.
MONTH
,
Calendar
.
JANUARY
);
c
.
set
(
Calendar
.
DATE
,
1
);
Calendar
cal
=
(
GregorianCalendar
)
c
.
clone
();
cal
.
add
(
Calendar
.
DATE
,
week
*
7
);
return
getFirstDayOfWeek
(
cal
.
getTime
());
return
getFirstDayOfWeek
(
cal
.
getTime
());
}
/**
* 得到某年某周的最后一天
* @param year
* @param week
* @return
*/
* 得到某年某周的最后一天
*
* @param year
* @param week
* @return
*/
public
static
Date
getLastDayOfWeek
(
int
year
,
int
week
)
{
Calendar
c
=
new
GregorianCalendar
();
Calendar
c
=
new
GregorianCalendar
();
c
.
set
(
Calendar
.
YEAR
,
year
);
c
.
set
(
Calendar
.
MONTH
,
Calendar
.
JANUARY
);
c
.
set
(
Calendar
.
DATE
,
1
);
Calendar
cal
=
(
GregorianCalendar
)
c
.
clone
();
cal
.
add
(
Calendar
.
DATE
,
week
*
7
);
cal
.
add
(
Calendar
.
DATE
,
week
*
7
);
return
getLastDayOfWeek
(
cal
.
getTime
());
}
/**
* 取得当前日期所在周的第一天
* @param date
* @return
*/
public
static
Date
getFirstDayOfWeek
(
Date
date
)
{
* 取得当前日期所在周的第一天
*
* @param date
* @return
*/
public
static
Date
getFirstDayOfWeek
(
Date
date
)
{
Calendar
c
=
new
GregorianCalendar
();
c
.
setFirstDayOfWeek
(
Calendar
.
MONDAY
);
c
.
setTime
(
date
);
c
.
set
(
Calendar
.
DAY_OF_WEEK
,
c
.
getFirstDayOfWeek
());
// Monday
return
c
.
getTime
();
return
c
.
getTime
();
}
/**
* 取得当前日期所在周的最后一天
* @param date
* @return
*/
* 取得当前日期所在周的最后一天
*
* @param date
* @return
*/
public
static
Date
getLastDayOfWeek
(
Date
date
)
{
Calendar
c
=
new
GregorianCalendar
();
c
.
setFirstDayOfWeek
(
Calendar
.
MONDAY
);
...
...
@@ -418,67 +448,70 @@ public class DateUtil {
c
.
set
(
Calendar
.
DAY_OF_WEEK
,
c
.
getFirstDayOfWeek
()
+
6
);
return
c
.
getTime
();
}
/**
* 取得当前日期所在月的第一天
*
* @param date
* @return
*/
public
static
Date
getFirstDayOfMonth
(
Date
date
){
Calendar
c
=
Calendar
.
getInstance
();
c
.
add
(
Calendar
.
MONTH
,
0
);
c
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
//设置为1号,当前日期既为本月第一天
public
static
Date
getFirstDayOfMonth
(
Date
date
)
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
add
(
Calendar
.
MONTH
,
0
);
c
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
// 设置为1号,当前日期既为本月第一天
return
c
.
getTime
();
}
/**
* 获取指定日期下个月的第一天 的日期
* @param dateStr
* @param format
* @return
*/
public
static
String
getFirstDayOfNextMonth
(
String
dateStr
,
String
format
){
/**
*
* * 获取指定日期下个月的第一天 的日期
*
* @param dateStr
* @param format
* @return
*/
public
static
String
getFirstDayOfNextMonth
(
String
dateStr
,
String
format
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
format
);
try
{
Date
date
=
sdf
.
parse
(
dateStr
);
Calendar
calendar
=
Calendar
.
getInstance
();
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
date
);
calendar
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
calendar
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
calendar
.
add
(
Calendar
.
MONTH
,
1
);
return
sdf
.
format
(
calendar
.
getTime
());
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
public
static
String
getLastMonth
(
String
format
,
int
month
)
{
}
public
static
String
getLastMonth
(
String
format
,
int
month
)
{
try
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
format
);
//
获取前一个月第一天
//
获取前一个月第一天
Calendar
calendar1
=
Calendar
.
getInstance
();
calendar1
.
add
(
Calendar
.
MONTH
,
month
);
calendar1
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
return
sdf
.
format
(
calendar1
.
getTime
());
}
catch
(
Exception
e
)
{
calendar1
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
return
sdf
.
format
(
calendar1
.
getTime
());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
public
static
String
getTimeStamp
()
{
return
String
.
valueOf
(
System
.
currentTimeMillis
()
/
1000
);
}
/**
* 获取指定小时前的日期
*/
public
static
String
beforeHourDay
(
String
fmt
,
int
hour
)
{
public
static
String
beforeHourDay
(
String
fmt
,
int
hour
)
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
calendar
.
get
(
Calendar
.
HOUR_OF_DAY
)
-
hour
);
return
format
(
calendar
.
getTime
(),
fmt
);
}
/**
* 取得当前时间向后或向前若干天的时间
*
...
...
@@ -490,7 +523,7 @@ public class DateUtil {
Date
date
=
new
Date
(
new
Date
().
getTime
()
+
(
offset
*
86400000L
));
return
format
(
date
,
fmt
);
}
/**
* 获取两个日期字符串之间的日期集合
* @param startTime:String
...
...
@@ -522,6 +555,26 @@ public class DateUtil {
e
.
printStackTrace
();
}
return
list
;
}
}
/**
* 时间加8小时,时区问题
* <p>Title: </p>
* <p>Description: </p>
* @param time
* @return
*/
public
static
String
formatTimeEight
(
String
time
)
{
String
newTime
=
time
;
try
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
FMT_DATE_SECOND
);
Date
d
=
sdf
.
parse
(
time
);
long
rightTime
=
(
long
)
(
d
.
getTime
()
+
8
*
60
*
60
*
1000
);
newTime
=
sdf
.
format
(
rightTime
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
newTime
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment