Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
polysoft-nafmii
/
polysoft-parent
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 281c961f
authored
Apr 25, 2021
by
zhoujinghao
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
加入注释
1 parent
f8366ba5
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
2 additions
and
408 deletions
nafmii-common/src/main/java/org/nafmii/utils/DateUtils.java
nafmii-gateway/src/main/java/org/nafmii/config/AccessFilter.java
nafmii-common/src/main/java/org/nafmii/utils/DateUtils.java
deleted
100644 → 0
View file @
f8366ba
package
org
.
nafmii
.
utils
;
import
org.nafmii.exception.JwtException
;
import
java.text.DateFormat
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
/**
* Created by zhangzhenfang on 2018/5/16.
*/
public
class
DateUtils
{
public
static
String
DATE_PATTERN
=
"yyyy-MM-dd HH:mm:ss"
;
public
static
String
SHORT_DATE_PATTERN
=
"yyyy-MM-dd"
;
public
static
String
format
(
Date
date
){
DateFormat
df
=
new
SimpleDateFormat
(
DATE_PATTERN
);
return
df
.
format
(
date
);
}
public
static
String
formatShortDate
(
Date
date
){
DateFormat
df
=
new
SimpleDateFormat
(
SHORT_DATE_PATTERN
);
return
df
.
format
(
date
);
}
/**
* 返回yyyy-MM-dd格式字符串时间
* @Author Lifp
* @Date 12:48 2020.9.16
* @Param [date]
* @return java.lang.String
**/
public
static
String
formatShortDateStr
(
String
date
){
if
(
date
.
contains
(
" "
)
||
date
.
contains
(
":"
))
{
date
=
date
.
substring
(
0
,
date
.
lastIndexOf
(
"-"
)
+
3
);
}
return
date
;
}
public
static
String
formatDate
(
Date
date
){
DateFormat
df
=
new
SimpleDateFormat
(
DATE_PATTERN
);
return
df
.
format
(
date
);
}
public
static
Date
nowDate
()
{
return
new
Date
();
}
public
static
Date
getDayBegin
(
Date
date
){
if
(
date
==
null
){
return
null
;
}
Date
todayBegin
=
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
truncate
(
date
,
Calendar
.
DATE
);
return
todayBegin
;
}
/**
* 指定日期的结束时间即第二天开始时间(条件查询应 date >= dayStart && date<dayEnd)
* @param date
* @return
*/
public
static
Date
getDayEnd
(
Date
date
){
if
(
date
==
null
){
return
null
;
}
Date
todayBegin
=
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
truncate
(
date
,
Calendar
.
DATE
);
return
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addDays
(
todayBegin
,
1
);
}
public
static
String
toDateString
(
Date
date
,
String
formatStr
)
{
DateFormat
df
=
getDateFormat
(
formatStr
);
return
df
.
format
(
date
);
}
/**
* 获取DateFormat
*
* @param formatStr
* @return
*/
public
static
DateFormat
getDateFormat
(
String
formatStr
)
{
DateFormat
df
=
dateFormatMap
.
get
(
formatStr
);
if
(
df
==
null
)
{
df
=
new
SimpleDateFormat
(
formatStr
);
dateFormatMap
.
put
(
formatStr
,
df
);
}
return
df
;
}
/**
* DateFormat缓存
*/
private
static
Map
<
String
,
DateFormat
>
dateFormatMap
=
new
HashMap
<>();
/**
* 将时间字符串转为LocalDateTime 格式
*/
public
static
LocalDateTime
strToLocalDate
(
String
timeStr
)
{
DateTimeFormatter
fmt
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss.SSS"
);
return
LocalDateTime
.
parse
(
timeStr
,
fmt
);
}
public
static
Date
parseDate
(
String
dateStr
){
if
(
dateStr
==
null
){
return
null
;
}
try
{
return
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
parseDate
(
dateStr
,
DATE_PATTERN
);
}
catch
(
ParseException
e
)
{
throw
new
JwtException
(
"date format error"
,
e
);
}
}
public
static
Date
parseShortDate
(
String
dateStr
){
if
(
dateStr
==
null
){
return
null
;
}
try
{
return
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
parseDate
(
dateStr
,
SHORT_DATE_PATTERN
);
}
catch
(
ParseException
e
)
{
throw
new
JwtException
(
"date format error"
,
e
);
}
}
public
static
Date
parseDate
(
String
dateStr
,
String
...
datePattern
){
if
(
dateStr
==
null
){
return
null
;
}
try
{
return
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
parseDate
(
dateStr
,
datePattern
);
}
catch
(
ParseException
e
)
{
throw
new
JwtException
(
"date format error"
,
e
);
}
}
// 判断两个日期是否为同一天
public
static
boolean
isSameDay
(
Date
date1
,
Date
date2
)
{
if
(
date1
!=
null
&&
date2
!=
null
)
{
Calendar
cal1
=
Calendar
.
getInstance
();
cal1
.
setTime
(
date1
);
Calendar
cal2
=
Calendar
.
getInstance
();
cal2
.
setTime
(
date2
);
return
isSameDay
(
cal1
,
cal2
);
}
else
{
throw
new
IllegalArgumentException
(
"The date must not be null"
);
}
}
// 判断两个日期是否为同一天
public
static
boolean
isSameDay
(
Calendar
cal1
,
Calendar
cal2
)
{
if
(
cal1
!=
null
&&
cal2
!=
null
)
{
return
cal1
.
get
(
0
)
==
cal2
.
get
(
0
)
&&
cal1
.
get
(
1
)
==
cal2
.
get
(
1
)
&&
cal1
.
get
(
6
)
==
cal2
.
get
(
6
);
}
else
{
throw
new
IllegalArgumentException
(
"The date must not be null"
);
}
}
// 判断给定的两个日期相差天数
public
static
int
differentDays
(
Date
date1
,
Date
date2
)
{
Calendar
cal1
=
Calendar
.
getInstance
();
cal1
.
setTime
(
date1
);
Calendar
cal2
=
Calendar
.
getInstance
();
cal2
.
setTime
(
date2
);
int
day1
=
cal1
.
get
(
Calendar
.
DAY_OF_YEAR
);
int
day2
=
cal2
.
get
(
Calendar
.
DAY_OF_YEAR
);
int
year1
=
cal1
.
get
(
Calendar
.
YEAR
);
int
year2
=
cal2
.
get
(
Calendar
.
YEAR
);
if
(
year1
!=
year2
)
{
//不同年
int
timeDistance
=
0
;
for
(
int
i
=
year1
;
i
<
year2
;
i
++)
{
if
(
i
%
4
==
0
&&
i
%
100
!=
0
||
i
%
400
==
0
)
{
//闰年
timeDistance
+=
366
;
}
else
//不是闰年
{
timeDistance
+=
365
;
}
}
return
timeDistance
+
(
day2
-
day1
)
;
}
else
//同年
{
System
.
out
.
println
(
"判断day2 - day1 : "
+
(
day2
-
day1
));
return
day2
-
day1
;
}
}
// 判断给定的日期是否为一个月的第一天
public
static
boolean
isFirstDayOfMonth
(
Date
date
)
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
date
);
System
.
out
.
println
(
calendar
.
get
(
Calendar
.
MONTH
)+
1
);
return
calendar
.
get
(
Calendar
.
DAY_OF_MONTH
)
==
1
;
}
// 获取昨天的日期
public
static
Date
getYesterdayStr
(){
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
-
24
);
calendar
.
set
(
Calendar
.
MINUTE
,
0
);
calendar
.
set
(
Calendar
.
SECOND
,
0
);
Date
time
=
calendar
.
getTime
();
// return getDayBegin(time);
return
time
;
}
// 获取时间段内的所有日期
public
static
List
<
Date
>
getRangeDate
(
Date
start
,
Date
end
)
{
Calendar
min
=
Calendar
.
getInstance
();
Calendar
max
=
Calendar
.
getInstance
();
min
.
setTime
(
start
);
min
.
set
(
Calendar
.
HOUR_OF_DAY
,
0
);
min
.
set
(
Calendar
.
MINUTE
,
0
);
min
.
set
(
Calendar
.
SECOND
,
0
);
min
.
set
(
Calendar
.
MILLISECOND
,
0
);
max
.
setTime
(
end
);
max
.
set
(
Calendar
.
HOUR_OF_DAY
,
-
24
);
max
.
set
(
Calendar
.
MINUTE
,
0
);
max
.
set
(
Calendar
.
SECOND
,
0
);
max
.
set
(
Calendar
.
MILLISECOND
,
0
);
List
<
Date
>
dateArrayList
=
new
ArrayList
<>();
Calendar
current
=
min
;
while
(
current
.
before
(
max
)
||
current
.
equals
(
max
))
{
dateArrayList
.
add
(
current
.
getTime
());
current
.
add
(
Calendar
.
DAY_OF_MONTH
,
1
);
}
return
dateArrayList
;
}
/**
* zjh
* 返回日时分秒(重构)
* @param
* @return
*/
public
static
String
secondToTime
(
Date
endIsTopTime
)
{
long
second
=
endIsTopTime
.
getTime
()-
System
.
currentTimeMillis
();
if
(
second
<
0
)
{
return
"00:00:00"
;
}
long
nd
=
1000
*
24
*
60
*
60
;
long
nh
=
1000
*
60
*
60
;
long
nm
=
1000
*
60
;
long
hour
=
second
%
nd
/
nh
;
//获取相差的小时数
long
min
=
second
%
nd
%
nh
/
nm
;
//获取相差的分钟数
long
day
=
second
/
nd
;
long
secondResult
=
(
second
%
(
1000
*
60
))
/
1000
;
if
(
0
<
day
){
return
day
+
"天 "
+
hour
+
":"
+
min
+
":"
+
secondResult
;
}
else
{
return
hour
+
":"
+
min
+
":"
+
secondResult
;
}
}
/**
* 获取30天之前的日期 yyyy-mm-hh 格式
* @return
*/
public
static
String
recentMonthDateStr
()
{
Date
startDate
=
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addDays
(
new
Date
(),
-
30
);
return
DateUtils
.
formatShortDate
(
startDate
);
}
/**
* 获取指定时间后一天的日期 yyyy-mm-hh 格式
* @return
*/
public
static
String
getAfterDayStr
(
Date
date
)
{
Date
startDate
=
DateUtils
.
getDayEnd
(
date
);
return
DateUtils
.
formatShortDate
(
startDate
);
}
/**
* 获取指定时间段的日期
* @return
*/
public
static
Date
getSpecifyTime
(
String
hour
,
String
minute
)
{
Calendar
time
=
Calendar
.
getInstance
();
time
.
set
(
Calendar
.
HOUR_OF_DAY
,
Integer
.
parseInt
(
hour
));
time
.
set
(
Calendar
.
MINUTE
,
Integer
.
parseInt
(
minute
));
time
.
set
(
Calendar
.
SECOND
,
0
);
// time.set(Calendar.MILLISECOND, 999);
return
time
.
getTime
();
}
public
static
List
<
String
>
getBetweenDate
(
String
begin
,
String
end
){
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
List
<
String
>
betweenList
=
new
ArrayList
<
String
>();
try
{
Calendar
startDay
=
Calendar
.
getInstance
();
startDay
.
setTime
(
format
.
parse
(
begin
));
startDay
.
add
(
Calendar
.
DATE
,
-
1
);
while
(
true
){
startDay
.
add
(
Calendar
.
DATE
,
1
);
Date
newDate
=
startDay
.
getTime
();
String
newend
=
format
.
format
(
newDate
);
betweenList
.
add
(
newend
);
if
(
end
.
equals
(
newend
)){
break
;
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
betweenList
;
}
/**
* 根据当前日期获得所在周的日期区间(周一和周日日期)
* @Author Lifp
* @Date 14:54 2020.9.17
* @Param [date, whichDay(0-周一; 1-周日)]
* @return java.lang.String
**/
public
static
String
getTimeInterval
(
Date
date
,
Integer
whichDay
)
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
date
);
// 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了
// 获得当前日期是一个星期的第几天
int
dayWeek
=
cal
.
get
(
Calendar
.
DAY_OF_WEEK
);
if
(
1
==
dayWeek
)
{
cal
.
add
(
Calendar
.
DAY_OF_MONTH
,
-
1
);
}
// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
cal
.
setFirstDayOfWeek
(
Calendar
.
MONDAY
);
// 返回结果
String
timeRsp
;
// 获得当前日期是一个星期的第几天
int
day
=
cal
.
get
(
Calendar
.
DAY_OF_WEEK
);
int
cDate
=
Calendar
.
DATE
;
// 获取周1日期
if
(
whichDay
==
0
)
{
int
firstDayOfWeek
=
cal
.
getFirstDayOfWeek
();
// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
cal
.
add
(
cDate
,
cal
.
getFirstDayOfWeek
()
-
day
);
timeRsp
=
formatShortDate
(
cal
.
getTime
());
}
else
if
(
whichDay
==
1
)
{
// 获取周日日期
cal
.
add
(
cDate
,
8
-
day
);
timeRsp
=
formatShortDate
(
cal
.
getTime
());
}
else
{
return
""
;
}
return
timeRsp
;
}
/**
* 获取19xx,20xx形式的年
*
* @param d
* @return
*/
public
static
int
getYear
(
Date
d
)
{
Calendar
now
=
Calendar
.
getInstance
(
TimeZone
.
getDefault
());
now
.
setTime
(
d
);
return
now
.
get
(
Calendar
.
YEAR
);
}
/**
* 获取某年到现在的所有年份
* @Author Lifp
* @Date 16:43 2020.9.17
* @Param [startYear]
* @return java.util.List<java.lang.String>
**/
public
static
List
<
String
>
getYears
(
int
startYear
)
{
List
<
String
>
years
=
new
ArrayList
<>();
int
endYear
=
getYear
(
new
Date
());
int
local
=
endYear
-
startYear
;
while
(
local
>
-
1
)
{
years
.
add
(
String
.
valueOf
(
startYear
++));
local
--;
}
return
years
;
}
/**
* 返回手机号码
*/
public
static
int
getNum
(
int
start
,
int
end
)
{
return
(
int
)(
Math
.
random
()*(
end
-
start
+
1
)+
start
);
}
private
static
String
[]
telFirst
=
"134,135,136,137,138,139,150,151,152,157,158,159,130,131,132,155,156,133,153"
.
split
(
","
);
private
static
String
getTel
()
{
int
index
=
getNum
(
0
,
telFirst
.
length
-
1
);
String
first
=
telFirst
[
index
];
String
second
=
String
.
valueOf
(
getNum
(
1
,
888
)+
10000
).
substring
(
1
);
String
third
=
String
.
valueOf
(
getNum
(
1
,
9100
)+
10000
).
substring
(
1
);
return
first
+
second
+
third
;
}
public
static
void
main
(
String
[]
args
){
Date
date
=
parseShortDate
(
"2020-09-20"
);
System
.
out
.
println
(
getTimeInterval
(
date
,
0
));
System
.
out
.
println
(
getTimeInterval
(
date
,
1
));
System
.
out
.
println
(
getYear
(
new
Date
()));
}
}
nafmii-gateway/src/main/java/org/nafmii/config/AccessFilter.java
View file @
281c961
...
...
@@ -14,6 +14,7 @@ import org.springframework.cloud.gateway.filter.GlobalFilter;
import
org.springframework.core.Ordered
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.server.reactive.ServerHttpResponse
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.AntPathMatcher
;
import
org.springframework.web.server.ServerWebExchange
;
import
reactor.core.publisher.Mono
;
...
...
@@ -26,6 +27,7 @@ import java.util.Set;
* Created by zhangzhenfang on 2018/4/17.
*/
@Slf4j
@Component
public
class
AccessFilter
implements
GlobalFilter
,
Ordered
{
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment