Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
ZHHT-IRN-BD-ANALYSIS
Project
Overview
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
李凯旋
ZHHT-IRN-BD-ANALYSIS
Commits
62b6186f
Commit
62b6186f
authored
Nov 02, 2022
by
余根龙
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
0e8073be
7515cd31
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
1496 additions
and
0 deletions
+1496
-0
DateUtils.java
...streaming/src/main/java/com/zhht/irn/utils/DateUtils.java
+1316
-0
StringUtils.java
...reaming/src/main/java/com/zhht/irn/utils/StringUtils.java
+180
-0
No files found.
realtime/hologram-streaming/src/main/java/com/zhht/irn/utils/DateUtils.java
0 → 100644
View file @
62b6186f
package
com
.
zhht
.
irn
.
utils
;
import
java.sql.Timestamp
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
/**
* Created by wzp on 2017/6/27.
*/
public
class
DateUtils
{
public
static
String
dateFormat
=
"yyyy-MM-dd"
;
public
static
String
timeFormat
=
"yyyy-MM-dd HH:mm:ss"
;
public
static
String
timeFormat2
=
"yyyyMMddHHmmss"
;
public
static
final
SimpleDateFormat
TIME_FORMAT
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
public
static
final
SimpleDateFormat
DATE_FORMAT
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
public
static
final
SimpleDateFormat
DATEKEY_FORMAT
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
public
static
Map
getKylinTime
(
String
h
,
int
n
){
String
currentDateTime
=
DateUtils
.
getCurrentDateTime
(
"yyyy-MM-dd"
);
Date
date
=
DateUtils
.
stringToDate
(
currentDateTime
,
"yyyy-MM-dd"
);
Calendar
cd
=
Calendar
.
getInstance
();
cd
.
setTime
(
date
);
String
e
=
DateUtils
.
dateToString
(
cd
.
getTime
(),
"yyyy-MM-dd"
)+
h
;
cd
.
add
(
Calendar
.
DAY_OF_MONTH
,-
n
);
String
s
=
DateUtils
.
dateToString
(
cd
.
getTime
(),
"yyyy-MM-dd"
)+
h
;
long
timeStart
=
DateUtils
.
stringToDate
(
s
,
"yyyy-MM-dd HH:mm:ss"
).
getTime
();
// System.out.println("time================================="+timeStart+"================================="+s);
long
timeEnd
=
DateUtils
.
stringToDate
(
e
,
"yyyy-MM-dd HH:mm:ss"
).
getTime
();
// System.out.println("time================================="+timeEnd+"================================="+e);
Map
map
=
new
HashMap
();
map
.
put
(
"startTime"
,
timeStart
);
map
.
put
(
"endTime"
,
timeEnd
);
return
map
;
}
public
static
Map
getLM
()
{
String
currentDateTime
=
DateUtils
.
getCurrentDateTime
(
dateFormat
);
Date
date
=
DateUtils
.
stringToDate
(
currentDateTime
,
dateFormat
);
Calendar
cd
=
Calendar
.
getInstance
();
cd
.
setTime
(
date
);
cd
.
add
(
Calendar
.
MONTH
,-
1
);
cd
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
String
s
=
DateUtils
.
dateToString
(
cd
.
getTime
(),
dateFormat
)+
" 00:00:00"
;
String
s1
=
DateUtils
.
dateToString
(
cd
.
getTime
(),
"yyyyMMddHHmmss"
);
long
timeStart
=
DateUtils
.
stringToDate
(
s
,
"yyyy-MM-dd HH:mm:ss"
).
getTime
();
cd
.
add
(
Calendar
.
MONTH
,
1
);
cd
.
set
(
Calendar
.
DAY_OF_MONTH
,
0
);
String
e
=
DateUtils
.
dateToString
(
cd
.
getTime
(),
dateFormat
)+
" 00:00:00"
;
String
e1
=
DateUtils
.
dateToString
(
cd
.
getTime
(),
"yyyyMMddHHmmss"
);
long
timeEnd
=
DateUtils
.
stringToDate
(
e
,
"yyyy-MM-dd HH:mm:ss"
).
getTime
();
Map
map
=
new
HashMap
();
map
.
put
(
"s"
,
timeStart
);
map
.
put
(
"e"
,
timeEnd
);
map
.
put
(
"s1"
,
s1
);
map
.
put
(
"e1"
,
e1
);
return
map
;
}
public
static
Map
getM
()
{
String
currentDateTime
=
DateUtils
.
getCurrentDateTime
(
dateFormat
);
Date
date
=
DateUtils
.
stringToDate
(
currentDateTime
,
dateFormat
);
Calendar
cd
=
Calendar
.
getInstance
();
String
dd
=
DateUtils
.
dateToString
(
cd
.
getTime
(),
"dd"
);
Calendar
cd1
=
Calendar
.
getInstance
();
String
e
=
DateUtils
.
dateToString
(
cd
.
getTime
(),
dateFormat
);
System
.
out
.
println
(
e
);
long
timeEnd
=
DateUtils
.
stringToDate
(
e
+
" 00:00:00"
,
"yyyy-MM-dd HH:mm:ss"
).
getTime
();
cd1
.
setTime
(
date
);
cd1
.
add
(
Calendar
.
DAY_OF_MONTH
,-
1
);
String
e1
=
DateUtils
.
dateToString
(
cd1
.
getTime
(),
"yyyyMMdd"
)+
"000000"
;
cd
.
setTime
(
date
);
cd
.
add
(
Calendar
.
MONTH
,
0
);
cd
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
String
s
=
DateUtils
.
dateToString
(
cd
.
getTime
(),
dateFormat
)+
" 00:00:00"
;
String
s1
=
DateUtils
.
dateToString
(
cd
.
getTime
(),
"yyyyMMdd"
)+
"000000"
;
System
.
out
.
println
(
s
);
long
timeStart
=
DateUtils
.
stringToDate
(
s
,
"yyyy-MM-dd HH:mm:ss"
).
getTime
();
Map
map
=
new
HashMap
();
map
.
put
(
"s"
,
timeStart
);
map
.
put
(
"e"
,
timeEnd
);
map
.
put
(
"e1"
,
e1
);
map
.
put
(
"s1"
,
s1
);
map
.
put
(
"dd"
,
dd
);
return
map
;
}
public
static
String
getLMEnd
()
{
return
dateFormat
;
}
public
static
String
getMFirst
()
{
return
dateFormat
;
}
/**
* 时间转字符
*
* @param date 时间 yyyy-MM-dd
* @return
*/
public
static
String
toDateStr
(
Date
date
)
{
return
toStr
(
date
,
dateFormat
);
}
/**
* 时间转字符
*
* @param date 时间 yyyy-MM-dd HH:mm:ss
* @return
*/
public
static
String
toTimeStr
(
Date
date
)
{
return
toStr
(
date
,
timeFormat
);
}
public
static
String
toTimeStr2
(
Date
date
)
{
return
toStr
(
date
,
timeFormat2
);
}
/**
* 时间转字符
*
* @param date 时间
* @param format 时间格式
* @return
*/
public
static
String
toStr
(
Date
date
,
String
format
)
{
if
(
date
!=
null
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
format
);
return
sdf
.
format
(
date
);
}
return
""
;
}
/**
* 字符转时间
*
* @param dateStr yyyy-MM-dd
* @return
*/
public
static
Date
toDate
(
String
dateStr
)
{
return
toDate
(
dateStr
,
dateFormat
);
}
/**
* 字符转时间
*
* @param dateStr yyyy-MM-dd HH:mm:ss
* @return
*/
public
static
Date
toTime
(
String
dateStr
)
{
return
toDate
(
dateStr
,
timeFormat
);
}
/**
* 字符转时间
*
* @param dateStr
* @param format
* @return
*/
public
static
Date
toDate
(
String
dateStr
,
String
format
)
{
if
(
StringUtils
.
isNotEmpty
(
dateStr
))
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
format
);
try
{
return
sdf
.
parse
(
dateStr
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
/**
* 获取用户当前登录时间
*/
public
static
Timestamp
getlocaltime
()
{
Timestamp
time
=
new
Timestamp
(
System
.
currentTimeMillis
());
return
time
;
}
/**
* 转换为时间戳
*
* @param date
* @return
*/
public
static
Timestamp
toTimestamp
(
Date
date
)
{
Timestamp
time
=
new
Timestamp
(
date
.
getTime
());
return
time
;
}
/**
* 获取当前时间
* 字符串格式
* yyyy-MM-dd HH:mm:ss
*
* @return
*/
public
static
String
DateToString
()
{
return
toStr
(
new
Date
(),
timeFormat
);
}
/**
* 获取指定时间的当天开始时间
*
* @param date 指定时间
* @return 当天的开始时间
*/
public
static
Date
getBeginOfDate
(
Date
date
)
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
date
);
int
hour
=
cal
.
get
(
Calendar
.
HOUR_OF_DAY
);
int
minute
=
cal
.
get
(
Calendar
.
MINUTE
);
int
second
=
cal
.
get
(
Calendar
.
SECOND
);
long
millisecond
=
hour
*
60
*
60
*
1000
+
minute
*
60
*
1000
+
second
*
1000
;
cal
.
setTimeInMillis
(
cal
.
getTimeInMillis
()
-
millisecond
);
return
cal
.
getTime
();
}
/**
* 当前日期+/-days后的日期
*
* @param days
* @return
*/
public
static
Date
getDateByDays
(
int
days
)
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
add
(
Calendar
.
DAY_OF_MONTH
,
days
);
return
cal
.
getTime
();
}
/**
* 获取本周的结束时间
*/
public
static
Date
getEndDayOfWeek
()
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
getBeginDayOfWeek
());
cal
.
add
(
Calendar
.
DAY_OF_WEEK
,
6
);
cal
.
set
(
cal
.
get
(
Calendar
.
YEAR
),
cal
.
get
(
Calendar
.
MONTH
),
cal
.
get
(
Calendar
.
DAY_OF_MONTH
),
23
,
59
,
59
);
cal
.
set
(
Calendar
.
MILLISECOND
,
999
);
return
cal
.
getTime
();
}
/**
* 获取本周的开始时间
*/
public
static
Date
getBeginDayOfWeek
()
{
Date
date
=
new
Date
();
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
date
);
int
dayofweek
=
cal
.
get
(
Calendar
.
DAY_OF_WEEK
);
if
(
dayofweek
==
1
)
{
dayofweek
+=
7
;
}
cal
.
add
(
Calendar
.
DATE
,
2
-
dayofweek
);
cal
.
set
(
cal
.
get
(
Calendar
.
YEAR
),
cal
.
get
(
Calendar
.
MONTH
),
cal
.
get
(
Calendar
.
DAY_OF_MONTH
),
0
,
0
,
0
);
cal
.
set
(
Calendar
.
MILLISECOND
,
0
);
return
cal
.
getTime
();
}
/**
* 判断日期大小
*
* @param DATE1
* @param DATE2
* @return
*/
public
static
int
compare_date
(
String
DATE1
,
String
DATE2
)
{
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
try
{
Date
dt1
=
df
.
parse
(
DATE1
);
Date
dt2
=
df
.
parse
(
DATE2
);
if
(
dt1
.
getTime
()
>
dt2
.
getTime
())
{
return
1
;
}
else
if
(
dt1
.
getTime
()
<
dt2
.
getTime
())
{
return
-
1
;
}
else
{
return
0
;
}
}
catch
(
Exception
exception
)
{
exception
.
printStackTrace
();
}
return
0
;
}
/**
* 时间段内的天数
*
* @param cntDateBeg 开始时间
* @param cntDateEnd 结束时间
* @return
*/
public
static
Integer
getDays
(
String
cntDateBeg
,
String
cntDateEnd
)
{
Integer
day
=
0
;
//拆分成数组
String
[]
dateBegs
=
cntDateBeg
.
split
(
"-"
);
String
[]
dateEnds
=
cntDateEnd
.
split
(
"-"
);
//开始时间转换成时间戳
Calendar
start
=
Calendar
.
getInstance
();
start
.
set
(
Integer
.
valueOf
(
dateBegs
[
0
]),
Integer
.
valueOf
(
dateBegs
[
1
])
-
1
,
Integer
.
valueOf
(
dateBegs
[
2
]));
Long
startTIme
=
start
.
getTimeInMillis
();
//结束时间转换成时间戳
Calendar
end
=
Calendar
.
getInstance
();
end
.
set
(
Integer
.
valueOf
(
dateEnds
[
0
]),
Integer
.
valueOf
(
dateEnds
[
1
])
-
1
,
Integer
.
valueOf
(
dateEnds
[
2
]));
Long
endTime
=
end
.
getTimeInMillis
();
//定义一个一天的时间戳时长
Long
oneDay
=
1000
*
60
*
60
*
24
l
;
Long
time
=
startTIme
;
//循环得出
while
(
time
<=
endTime
)
{
day
++;
time
+=
oneDay
;
}
return
day
;
}
/**
* 时间段内的周数
*
* @param startDate
* @param endDate
* @return
*/
public
static
Integer
getWeeks
(
String
startDate
,
String
endDate
)
{
if
(
StringUtils
.
isNotEmpty
(
startDate
)
&&
StringUtils
.
isNotEmpty
(
endDate
))
{
Date
start
=
toDate
(
startDate
);
Date
end
=
toDate
(
endDate
);
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
start
);
long
time1
=
cal
.
getTimeInMillis
();
cal
.
setTime
(
end
);
long
time2
=
cal
.
getTimeInMillis
();
long
between_days
=
(
time2
-
time1
)
/
(
1000
*
3600
*
24
);
Double
days
=
Double
.
parseDouble
(
String
.
valueOf
(
between_days
));
if
((
days
/
7
)
>
0
&&
(
days
/
7
)
<=
1
)
{
//不满一周的按一周算
return
1
;
}
else
if
(
days
/
7
>
1
)
{
int
day
=
days
.
intValue
();
if
(
day
%
7
>
0
)
{
return
day
/
7
+
1
;
}
else
{
return
day
/
7
;
}
}
else
if
((
days
/
7
)
==
0
)
{
return
0
;
}
else
{
//负数返还null
return
null
;
}
}
return
null
;
}
public
static
String
getWeekBegin
(
String
date
)
throws
ParseException
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
//设置时间格式
Calendar
cal
=
Calendar
.
getInstance
();
Date
time
=
sdf
.
parse
(
date
);
cal
.
setTime
(
time
);
//判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了
int
dayWeek
=
cal
.
get
(
Calendar
.
DAY_OF_WEEK
);
//获得当前日期是一个星期的第几天
if
(
1
==
dayWeek
)
{
cal
.
add
(
Calendar
.
DAY_OF_MONTH
,
-
1
);
}
cal
.
setFirstDayOfWeek
(
Calendar
.
MONDAY
);
//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
int
day
=
cal
.
get
(
Calendar
.
DAY_OF_WEEK
);
//获得当前日期是一个星期的第几天
cal
.
add
(
Calendar
.
DATE
,
cal
.
getFirstDayOfWeek
()
-
day
);
//根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
String
getWeekBegin
=
sdf
.
format
(
cal
.
getTime
());
return
getWeekBegin
;
}
/**
* @param startTime yyyy-MM-dd hh:mm:ss
* @param endTime yyyy-MM-dd hh:mm:ss
* @param num
* @return dateBegin dateEnd
* @author liuliang
* 根据参数获取获取前n天对应的时间段
*/
public
static
Map
getNumDay
(
String
startTime
,
String
endTime
,
int
num
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Map
map
=
new
HashMap
();
try
{
Date
dateBegin
=
sdf
.
parse
(
startTime
);
Date
dateEnd
=
sdf
.
parse
(
endTime
);
String
dateBegin1
=
sdf
.
format
(
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addDays
(
dateBegin
,
num
));
String
dateend1
=
sdf
.
format
(
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addDays
(
dateEnd
,
num
));
map
.
put
(
"dateBegin"
,
dateBegin1
);
map
.
put
(
"dateEnd"
,
dateend1
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
map
;
}
/**
* @param Time yyyy-MM-dd HH:mm
* @param num
* @return
*/
public
static
String
getNumMinute
(
String
Time
,
int
num
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
);
String
dateMinute
=
""
;
Map
map
=
new
HashMap
();
try
{
Date
dateBegin
=
sdf
.
parse
(
Time
);
dateMinute
=
sdf
.
format
(
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addMinutes
(
dateBegin
,
num
));
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
dateMinute
;
}
/**
* @param startTime yyyy-MM-dd hh:mm:ss
* @param endTime yyyy-MM-dd hh:mm:ss
* @param num
* @return dateBegin dateEnd
* @author liuliang
* 根据参数获取获取前n天对应的时间段
*/
public
static
Map
getNumDayTwo
(
String
startTime
,
String
endTime
,
int
num
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Map
map
=
new
HashMap
();
try
{
Date
dateBegin
=
sdf
.
parse
(
startTime
);
Date
dateEnd
=
sdf
.
parse
(
endTime
);
String
dateBegin1
=
sdf
.
format
(
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addDays
(
dateBegin
,
num
));
String
dateend1
=
sdf
.
format
(
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addDays
(
dateEnd
,
num
));
map
.
put
(
"dateBegin"
,
dateBegin1
);
map
.
put
(
"dateEnd"
,
dateend1
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
map
;
}
/**
* @param startTime yyyy-MM-dd hh:mm:ss
* @param endTime yyyy-MM-dd hh:mm:ss
* @param num
* @return dateBegin dateEnd
* @author liuliang
* 根据参数获取获取前n周同一天对应的时间段
*/
public
static
Map
getNumWeekDay
(
String
startTime
,
String
endTime
,
int
num
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Map
map
=
new
HashMap
();
try
{
Date
dateBegin
=
sdf
.
parse
(
startTime
);
Date
dateEnd
=
sdf
.
parse
(
endTime
);
String
dateBegin1
=
sdf
.
format
(
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addWeeks
(
dateBegin
,
num
));
String
dateend1
=
sdf
.
format
(
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addWeeks
(
dateEnd
,
num
));
map
.
put
(
"dateBegin"
,
dateBegin1
);
map
.
put
(
"dateEnd"
,
dateend1
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
map
;
}
/**
* @param startTime yyyy-MM-dd hh:mm:ss
* @param endTime yyyy-MM-dd hh:mm:ss
* @param num
* @return dateBegin dateEnd
* @author liuliang
* 根据参数获取获取前n月同一天对应的时间段
*/
public
static
Map
getNumMonthDay
(
String
startTime
,
String
endTime
,
int
num
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Map
map
=
new
HashMap
();
try
{
Date
dateBegin
=
sdf
.
parse
(
startTime
);
Date
dateEnd
=
sdf
.
parse
(
endTime
);
String
dateBegin1
=
sdf
.
format
(
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addMonths
(
dateBegin
,
num
));
String
dateend1
=
sdf
.
format
(
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addMonths
(
dateEnd
,
num
));
map
.
put
(
"dateBegin"
,
dateBegin1
);
map
.
put
(
"dateEnd"
,
dateend1
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
map
;
}
/**
* 获取某个时间段内所有月份
* @param startDate
* @param endDate
* @return
* @throws ParseException
*/
public
static
List
<
String
>
getMonthBetween
(
String
startDate
,
String
endDate
)
{
ArrayList
<
String
>
result
=
new
ArrayList
<
String
>();
try
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM"
);
//格式化为年月
Calendar
min
=
Calendar
.
getInstance
();
Calendar
max
=
Calendar
.
getInstance
();
min
.
setTime
(
sdf
.
parse
(
startDate
));
min
.
set
(
min
.
get
(
Calendar
.
YEAR
),
min
.
get
(
Calendar
.
MONTH
),
1
);
max
.
setTime
(
sdf
.
parse
(
endDate
));
max
.
set
(
max
.
get
(
Calendar
.
YEAR
),
max
.
get
(
Calendar
.
MONTH
),
2
);
Calendar
curr
=
min
;
while
(
curr
.
before
(
max
))
{
result
.
add
(
sdf
.
format
(
curr
.
getTime
()));
curr
.
add
(
Calendar
.
MONTH
,
1
);
}
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
result
;
}
/**
* @param startTime yyyy-MM-dd hh:mm:ss
* @param endTime yyyy-MM-dd hh:mm:ss
* @param num
* @return dateBegin dateEnd
* @author liuliang
* 根据参数获取获取前n年同一天对应的时间段
*/
public
static
Map
getNumYearhDay
(
String
startTime
,
String
endTime
,
int
num
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Map
map
=
new
HashMap
();
try
{
Date
dateBegin
=
sdf
.
parse
(
startTime
);
Date
dateEnd
=
sdf
.
parse
(
endTime
);
String
dateBegin1
=
sdf
.
format
(
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addYears
(
dateBegin
,
num
));
String
dateend1
=
sdf
.
format
(
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addYears
(
dateEnd
,
num
));
map
.
put
(
"dateBegin"
,
dateBegin1
);
map
.
put
(
"dateEnd"
,
dateend1
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
map
;
}
/**
* @param startTime yyyy-MM-dd hh:mm:ss
* @param endTime yyyy-MM-dd hh:mm:ss
* @param num
* @return dateBegin dateEnd
* @author liuliang
* 根据参数获取获取前n季度同一天对应的时间段
*/
public
static
Map
getNumJdDay
(
String
startTime
,
String
endTime
,
int
num
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Map
map
=
new
HashMap
();
try
{
Date
dateBegin
=
sdf
.
parse
(
startTime
);
Date
dateEnd
=
sdf
.
parse
(
endTime
);
String
dateBegin1
=
sdf
.
format
(
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addMonths
(
dateBegin
,
num
*
3
));
String
dateend1
=
sdf
.
format
(
org
.
apache
.
commons
.
lang3
.
time
.
DateUtils
.
addMonths
(
dateEnd
,
num
*
3
));
map
.
put
(
"dateBegin"
,
dateBegin1
);
map
.
put
(
"dateEnd"
,
dateend1
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
map
;
}
/**
* @author wuyanfei
* @date 2019-09-23
* 获取一年前的同一天
*/
public
static
String
getOneYearAgo
(
String
time
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
timeFormat
);
Calendar
calendar
=
Calendar
.
getInstance
();
Date
date
=
null
;
try
{
date
=
sdf
.
parse
(
time
);
calendar
.
setTime
(
date
);
calendar
.
add
(
Calendar
.
YEAR
,
-
1
);
Date
after
=
calendar
.
getTime
();
return
sdf
.
format
(
after
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
time
;
}
/**
* @author wuyanfei
* @date 2019-09-23
* 获取一个季度前的同一天
*/
public
static
String
getOneQuarterAgo
(
String
time
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
timeFormat
);
Calendar
calendar
=
Calendar
.
getInstance
();
Date
date
=
null
;
try
{
date
=
sdf
.
parse
(
time
);
calendar
.
setTime
(
date
);
calendar
.
add
(
Calendar
.
MONTH
,
-
3
);
Date
after
=
calendar
.
getTime
();
return
sdf
.
format
(
after
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
time
;
}
/**
* @author wuyanfei
* @date 2019-09-23
* 获取一个月前的同一天
*/
public
static
String
getOneMonthAgo
(
String
time
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
timeFormat
);
Calendar
calendar
=
Calendar
.
getInstance
();
Date
date
=
null
;
try
{
date
=
sdf
.
parse
(
time
);
calendar
.
setTime
(
date
);
calendar
.
add
(
Calendar
.
MONTH
,
-
1
);
Date
after
=
calendar
.
getTime
();
return
sdf
.
format
(
after
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
time
;
}
/**
* @author wuyanfei
* @date 2019-09-23
* 获取一周前的同一天
*/
public
static
String
getOneWeekAgo
(
String
time
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
timeFormat
);
Calendar
calendar
=
Calendar
.
getInstance
();
Date
date
=
null
;
try
{
date
=
sdf
.
parse
(
time
);
calendar
.
setTime
(
date
);
calendar
.
add
(
Calendar
.
WEEK_OF_YEAR
,
-
1
);
Date
after
=
calendar
.
getTime
();
return
sdf
.
format
(
after
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
time
;
}
/**
* @author wuyanfei
* @date 2019-09-23
* 获取前一天
*/
public
static
String
getOneDayAgo
(
String
time
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
timeFormat
);
Calendar
calendar
=
Calendar
.
getInstance
();
Date
date
=
null
;
try
{
date
=
sdf
.
parse
(
time
);
calendar
.
setTime
(
date
);
calendar
.
add
(
Calendar
.
DAY_OF_MONTH
,
-
1
);
Date
after
=
calendar
.
getTime
();
return
sdf
.
format
(
after
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
time
;
}
/**
* @author wuyanfei
* @date 2019-09-23
* <p>
* 获取不同时间粒度下的起始时间
*/
public
static
String
getStartTimeOfDay
(
String
yearMonthDay
)
{
return
yearMonthDay
+
" 00:00:00"
;
}
public
static
String
getEndTimeOfDay
(
String
yearMonthDay
)
{
return
yearMonthDay
+
" 23:59:59"
;
}
public
static
String
getStartTimeOfWeek
(
String
yearWeek
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
dateFormat
);
Calendar
cal
=
Calendar
.
getInstance
();
String
[]
params
=
yearWeek
.
split
(
"-"
);
cal
.
set
(
Calendar
.
YEAR
,
Integer
.
parseInt
(
params
[
0
]));
cal
.
set
(
Calendar
.
WEEK_OF_YEAR
,
Integer
.
parseInt
(
params
[
1
]));
cal
.
set
(
Calendar
.
DAY_OF_WEEK
,
Calendar
.
MONDAY
);
return
sdf
.
format
(
cal
.
getTime
())
+
" 00:00:00"
;
}
public
static
String
getEndTimeOfWeek
(
String
yearWeek
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
dateFormat
);
Calendar
cal
=
Calendar
.
getInstance
();
String
[]
params
=
yearWeek
.
split
(
"-"
);
cal
.
set
(
Calendar
.
YEAR
,
Integer
.
parseInt
(
params
[
0
]));
cal
.
set
(
Calendar
.
WEEK_OF_YEAR
,
Integer
.
parseInt
(
params
[
1
])
+
1
);
cal
.
set
(
Calendar
.
DAY_OF_WEEK
,
Calendar
.
SUNDAY
);
return
sdf
.
format
(
cal
.
getTime
())
+
" 23:59:59"
;
}
/**
* @Param 2020-01
* @return一个月开始的时间
**/
public
static
String
getStartTimeOfMonth
(
String
yearMonth
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
dateFormat
);
Calendar
cal
=
Calendar
.
getInstance
();
String
[]
params
=
yearMonth
.
split
(
"-"
);
cal
.
set
(
Calendar
.
YEAR
,
Integer
.
parseInt
(
params
[
0
]));
cal
.
set
(
Calendar
.
MONTH
,
Integer
.
parseInt
(
params
[
1
])
-
1
);
cal
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
return
sdf
.
format
(
cal
.
getTime
())
+
" 00:00:00"
;
}
public
static
String
getEndTimeOfMonth
(
String
yearMonth
)
{
SimpleDateFormat
ss
=
new
SimpleDateFormat
(
dateFormat
);
Calendar
cal
=
Calendar
.
getInstance
();
String
[]
params
=
yearMonth
.
split
(
"-"
);
cal
.
set
(
Calendar
.
YEAR
,
Integer
.
parseInt
(
params
[
0
]));
cal
.
set
(
Calendar
.
MONTH
,
Integer
.
parseInt
(
params
[
1
])
-
1
);
cal
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
cal
.
roll
(
Calendar
.
DATE
,
-
1
);
return
ss
.
format
(
cal
.
getTime
())
+
" 23:59:59"
;
}
public
static
String
getStartTimeOfQuarter
(
String
yearnQuarter
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
dateFormat
);
Calendar
cal
=
Calendar
.
getInstance
();
String
[]
params
=
yearnQuarter
.
split
(
"-"
);
if
(
params
.
length
<
2
)
{
throw
new
RuntimeException
(
"参数不正确"
);
}
int
quarter
=
Integer
.
parseInt
(
params
[
1
]);
cal
.
set
(
Calendar
.
YEAR
,
Integer
.
parseInt
(
params
[
0
]));
cal
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
if
(
quarter
==
1
)
{
cal
.
set
(
Calendar
.
MONTH
,
Calendar
.
JANUARY
);
}
else
if
(
quarter
==
2
)
{
cal
.
set
(
Calendar
.
MONTH
,
Calendar
.
APRIL
);
}
else
if
(
quarter
==
3
)
{
cal
.
set
(
Calendar
.
MONTH
,
Calendar
.
JULY
);
}
else
if
(
quarter
==
4
)
{
cal
.
set
(
Calendar
.
MONTH
,
Calendar
.
OCTOBER
);
}
return
sdf
.
format
(
cal
.
getTime
())
+
" 00:00:00"
;
}
public
static
String
getEndTimeOfQuarter
(
String
yearnQuarter
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
dateFormat
);
Calendar
cal
=
Calendar
.
getInstance
();
String
[]
params
=
yearnQuarter
.
split
(
"-"
);
int
quarter
=
Integer
.
parseInt
(
params
[
1
]);
cal
.
set
(
Calendar
.
YEAR
,
Integer
.
parseInt
(
params
[
0
]));
if
(
quarter
==
1
)
{
cal
.
set
(
Calendar
.
MONTH
,
Calendar
.
MARCH
);
int
num
=
cal
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
);
cal
.
set
(
Calendar
.
DAY_OF_MONTH
,
num
);
}
else
if
(
quarter
==
2
)
{
cal
.
set
(
Calendar
.
MONTH
,
Calendar
.
JUNE
);
int
num
=
cal
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
);
cal
.
set
(
Calendar
.
DAY_OF_MONTH
,
num
);
}
else
if
(
quarter
==
3
)
{
cal
.
set
(
Calendar
.
MONTH
,
Calendar
.
SEPTEMBER
);
int
num
=
cal
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
);
cal
.
set
(
Calendar
.
DAY_OF_MONTH
,
num
);
}
else
if
(
quarter
==
4
)
{
cal
.
set
(
Calendar
.
MONTH
,
Calendar
.
DECEMBER
);
int
num
=
cal
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
);
cal
.
set
(
Calendar
.
DAY_OF_MONTH
,
num
);
}
return
sdf
.
format
(
cal
.
getTime
())
+
" 23:59:59"
;
}
public
static
String
getStartTimeOfYear
(
String
year
)
{
return
year
+
"-01-01 00:00:00"
;
}
public
static
String
getEndTimeOfYear
(
String
year
)
{
return
year
+
"-12-31 23:59:59"
;
}
public
static
String
fixToTwoDigitStr
(
Integer
param
)
{
if
(
param
<
10
)
{
return
"0"
+
param
;
}
else
{
return
param
+
""
;
}
}
/**
* @Author liuliang
* 获取某一个周对应的开始日期和结束日期
*/
public
static
Map
getBeginAndEndTimeOfWeek
(
int
year
,
int
week
)
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
set
(
year
,
0
,
1
);
int
dayOfWeek
=
7
-
calendar
.
get
(
Calendar
.
DAY_OF_WEEK
)
+
2
;
week
=
week
-
2
;
//周数减去第一周再减去要得到的周
calendar
.
add
(
Calendar
.
DAY_OF_YEAR
,
week
*
7
+
dayOfWeek
);
SimpleDateFormat
sf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
//周一
String
dateStart
=
sf
.
format
(
calendar
.
getTime
());
//System.out.println(dateStart);
calendar
.
add
(
Calendar
.
DAY_OF_YEAR
,
6
);
//周日
String
dateEnd
=
sf
.
format
(
calendar
.
getTime
());
//System.out.println(dateEnd);
Map
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"startDate"
,
dateStart
);
map
.
put
(
"dateEnd"
,
dateEnd
);
return
map
;
}
public
static
int
getDayNumBetween
(
Date
date1
,
Date
date2
)
{
SimpleDateFormat
sf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Calendar
cal1
=
Calendar
.
getInstance
();
Calendar
cal2
=
Calendar
.
getInstance
();
cal1
.
setTime
(
date1
);
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
));
System
.
out
.
println
(
day2
-
day1
);
return
day2
-
day1
;
}
}
/**
* 将字符串日期转换为日期格式
* 自定義格式
*
* @param datestr
* @return
*
*/
public
static
Date
stringToDate
(
String
datestr
,
String
dateformat
)
{
Date
date
=
new
Date
();
SimpleDateFormat
df
=
new
SimpleDateFormat
(
dateformat
);
try
{
date
=
df
.
parse
(
datestr
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
date
;
}
/**
* 将日期格式日期转换为字符串格式 自定義格式
*
* @param date
* @param dateformat
* @return
*/
public
static
String
dateToString
(
Date
date
,
String
dateformat
)
{
String
datestr
=
null
;
SimpleDateFormat
df
=
new
SimpleDateFormat
(
dateformat
);
datestr
=
df
.
format
(
date
);
return
datestr
;
}
/**
* 将字符串日期转换为日期格式
* 自定義格式
*
* @param datestr
* @return
*
*/
public
static
Date
stringToDateUTC
(
String
datestr
,
String
dateformat
)
{
Date
date
=
new
Date
();
SimpleDateFormat
df
=
new
SimpleDateFormat
(
dateformat
);
try
{
date
=
df
.
parse
(
datestr
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
date
;
}
/**
* 将日期格式日期转换为字符串格式 自定義格式
*
* @param date
* @param dateformat
* @return
*/
public
static
String
dateToStringUTC
(
Date
date
,
String
dateformat
)
{
String
datestr
=
null
;
SimpleDateFormat
df
=
new
SimpleDateFormat
(
dateformat
);
datestr
=
df
.
format
(
date
);
return
datestr
;
}
/**
* 获取当前日期时间
*
*
* @return
*
*/
public
static
String
getCurrentDateTime
(
String
Dateformat
)
{
String
datestr
=
null
;
SimpleDateFormat
df
=
new
SimpleDateFormat
(
Dateformat
);
df
.
setTimeZone
(
TimeZone
.
getTimeZone
(
"UTC"
));
datestr
=
df
.
format
(
new
Date
());
return
datestr
;
}
/**
* 获取当前日期时间
*
*
* @return
*
*/
public
static
String
getCurrentDateTimeUTC
(
String
Dateformat
)
{
String
datestr
=
null
;
SimpleDateFormat
df
=
new
SimpleDateFormat
(
Dateformat
);
datestr
=
df
.
format
(
new
Date
());
return
datestr
;
}
/**
* String格式日期加1秒(分钟或小时)
*
* @param str
* @param n 秒
* @return
*/
public
static
String
getAddTime
(
String
str
,
Integer
n
)
{
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Date
date
=
new
Date
();
try
{
date
=
df
.
parse
(
str
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
date
.
setTime
(
date
.
getTime
()
+
n
*
1000
);
return
df
.
format
(
date
);
}
/**
* 获取当前是本年第几周
*
* @return int
* @Author liuliang
* @Description
* @Date 获取当前是本年第几周
* @Param [str, n]
**/
public
static
int
getNowWeekOfYear
()
{
Calendar
calendar
=
Calendar
.
getInstance
();
int
i
=
calendar
.
get
(
Calendar
.
WEEK_OF_YEAR
);
return
i
;
}
/**
* 判断一个时间是否在另一个时间之前个时间是否在另一个时间之前
*
* @param time1 第一个时间
* @param time2 第二个时间
* @return 判断结果
*/
public
static
boolean
before
(
String
time1
,
String
time2
)
{
try
{
Date
dateTime1
=
TIME_FORMAT
.
parse
(
time1
);
Date
dateTime2
=
TIME_FORMAT
.
parse
(
time2
);
if
(
dateTime1
.
before
(
dateTime2
))
{
return
true
;
}
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
time1
);
System
.
out
.
println
(
time2
);
e
.
printStackTrace
();
}
return
false
;
}
/**
* 判断一个时间是否在另一个时间之后
*
* @param time1 第一个时间
* @param time2 第二个时间
* @return 判断结果
*/
public
static
boolean
after
(
String
time1
,
String
time2
)
{
try
{
Date
dateTime1
=
TIME_FORMAT
.
parse
(
time1
);
Date
dateTime2
=
TIME_FORMAT
.
parse
(
time2
);
if
(
dateTime1
.
after
(
dateTime2
))
{
return
true
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
false
;
}
/**
* 计算时间差值(单位为秒)
*
* @param time1 时间1
* @param time2 时间2
* @return 差值
*/
public
static
int
minus
(
String
time1
,
String
time2
)
{
try
{
Date
datetime1
=
TIME_FORMAT
.
parse
(
time1
);
Date
datetime2
=
TIME_FORMAT
.
parse
(
time2
);
long
millisecond
=
datetime1
.
getTime
()
-
datetime2
.
getTime
();
return
Integer
.
valueOf
(
String
.
valueOf
(
millisecond
/
1000
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
0
;
}
/**
* 获取年月日和小时
*
* @param datetime 时间(yyyy-MM-dd HH:mm:ss)
* @return 结果(yyyy-MM-dd_HH)
*/
public
static
String
getDateHour
(
String
datetime
)
{
String
date
=
datetime
.
split
(
" "
)[
0
];
String
hourMinuteSecond
=
datetime
.
split
(
" "
)[
1
];
String
hour
=
hourMinuteSecond
.
split
(
":"
)[
0
];
return
date
+
"_"
+
hour
;
}
/**
* 获取当天日期(yyyy-MM-dd)
*
* @return 当天日期
*/
public
static
String
getTodayDate
()
{
return
DATE_FORMAT
.
format
(
new
Date
());
}
/**
* 获取当天日期(yyyy-MM-dd HH:mm:ss)
*
* @return 当天时间
*/
public
static
String
getTodayTime
()
{
return
TIME_FORMAT
.
format
(
new
Date
());
}
/**
* 获取昨天的日期(yyyy-MM-dd)
*
* @return 昨天的日期
*/
public
static
String
getYesterdayDate
()
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
new
Date
());
cal
.
add
(
Calendar
.
DAY_OF_YEAR
,
-
1
);
Date
date
=
cal
.
getTime
();
return
DATE_FORMAT
.
format
(
date
);
}
/**
* 获取明天的日期(yyyy-MM-dd)
*
* @return 明天的日期
*/
public
static
String
getMingday
()
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
new
Date
());
cal
.
add
(
Calendar
.
DAY_OF_YEAR
,
1
);
Date
date
=
cal
.
getTime
();
return
DATE_FORMAT
.
format
(
date
);
}
/**
* 格式化日期(yyyy-MM-dd)
*
* @param date Date对象
* @return 格式化后的日期
*/
public
static
String
formatDate
(
Date
date
)
{
return
DATE_FORMAT
.
format
(
date
);
}
/**
* 格式化时间(yyyy-MM-dd HH:mm:ss)
*
* @param date Date对象
* @return 格式化后的时间
*/
public
static
String
formatTime
(
Date
date
)
{
return
TIME_FORMAT
.
format
(
date
);
}
/**
* 解析时间字符串
*
* @param time 时间字符串
* @return Date
*/
public
static
Date
parseTime
(
String
time
)
{
try
{
return
TIME_FORMAT
.
parse
(
time
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
/**
* 格式化日期key
*
* @param date
* @return
*/
public
static
String
formatDateKey
(
Date
date
)
{
return
DATEKEY_FORMAT
.
format
(
date
);
}
/**
* 格式化日期key
*
* @param datekey
* @return
*/
public
static
Date
parseDateKey
(
String
datekey
)
{
try
{
return
DATEKEY_FORMAT
.
parse
(
datekey
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
/**
* 格式化时间,保留到分钟级别
* yyyyMMddHHmm
*
* @param date
* @return
*/
public
static
String
formatTimeMinute
(
Date
date
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyyMMddHHmm"
);
return
sdf
.
format
(
date
);
}
/**
* 格式化时间,保留到M秒级别
* yyyyMMddHHmm
*
* @param date
* @return
*/
public
static
String
formatTimeMillis
(
Date
date
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
);
return
sdf
.
format
(
date
);
}
/**
* 获取给定日期的前一分钟
*/
public
static
String
getYestoMinute
(
String
dateMin
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyyMMddHHmm"
);
Date
parse
=
null
;
try
{
parse
=
sdf
.
parse
(
dateMin
);
}
catch
(
ParseException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
parse
);
cal
.
add
(
Calendar
.
MINUTE
,
-
1
);
// 设置为前一分钟
Date
time
=
cal
.
getTime
();
String
format
=
sdf
.
format
(
time
);
return
format
;
}
/**
* 获取给定日期的前一小时
*/
public
static
String
getYestoHour
(
String
dateMin
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyyMMddHHmm"
);
Date
parse
=
null
;
try
{
parse
=
sdf
.
parse
(
dateMin
);
}
catch
(
ParseException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
parse
);
cal
.
add
(
Calendar
.
HOUR
,
-
1
);
// 设置为前一分钟
Date
time
=
cal
.
getTime
();
String
format
=
sdf
.
format
(
time
);
return
format
;
}
public
static
String
getRangeTime
(
String
dateTime
)
{
//2018-09-13 18:02:57 dateTime
String
date
=
dateTime
.
split
(
" "
)[
0
];
String
hour
=
dateTime
.
split
(
" "
)[
1
].
split
(
":"
)[
0
];
int
minute
=
StringUtils
.
convertStringtoInt
(
dateTime
.
split
(
" "
)[
1
].
split
(
":"
)[
1
]);
// String second = dateTime.split(" ")[1].split(":")[2];
if
(
minute
+
(
5
-
minute
%
5
)
==
60
)
{
return
date
+
" "
+
hour
+
":"
+
StringUtils
.
fulfuill
((
minute
-
(
minute
%
5
))
+
""
)
+
"~"
+
date
+
" "
+
StringUtils
.
fulfuill
((
Integer
.
parseInt
(
hour
)
+
1
)
+
""
)
+
":00"
;
}
return
date
+
" "
+
hour
+
":"
+
StringUtils
.
fulfuill
((
minute
-
(
minute
%
5
))
+
""
)
+
"~"
+
date
+
" "
+
hour
+
":"
+
StringUtils
.
fulfuill
((
minute
+
(
5
-
minute
%
5
))
+
""
);
}
/**
* 获取给定时间段内所有天数
*/
public
static
List
<
String
>
findDaysStr
(
String
begintTime
,
String
endTime
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
dateFormat
);
Date
dBegin
=
null
;
Date
dEnd
=
null
;
try
{
dBegin
=
sdf
.
parse
(
begintTime
);
dEnd
=
sdf
.
parse
(
endTime
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
List
<
String
>
daysStrList
=
new
ArrayList
<
String
>();
daysStrList
.
add
(
sdf
.
format
(
dBegin
));
Calendar
calBegin
=
Calendar
.
getInstance
();
calBegin
.
setTime
(
dBegin
);
Calendar
calEnd
=
Calendar
.
getInstance
();
calEnd
.
setTime
(
dEnd
);
while
(
dEnd
.
after
(
calBegin
.
getTime
()))
{
calBegin
.
add
(
Calendar
.
DAY_OF_MONTH
,
1
);
String
dayStr
=
sdf
.
format
(
calBegin
.
getTime
());
daysStrList
.
add
(
dayStr
);
}
return
daysStrList
;
}
}
realtime/hologram-streaming/src/main/java/com/zhht/irn/utils/StringUtils.java
0 → 100644
View file @
62b6186f
package
com
.
zhht
.
irn
.
utils
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
StringUtils
{
/**
* 判断字符串是否为空
* @param str 字符串
* @return 是否为空
*/
public
static
boolean
isEmpty
(
String
str
)
{
return
str
==
null
||
""
.
equals
(
str
);
}
/**
* 判断字符串是否不为空
* @param str 字符串
* @return 是否不为空
*/
public
static
boolean
isNotEmpty
(
String
str
)
{
return
str
!=
null
&&
!
""
.
equals
(
str
);
}
/**
* 截断字符串两侧的逗号
* @param str 字符串
* @return 字符串
*/
public
static
String
trimComma
(
String
str
)
{
if
(
str
.
startsWith
(
","
))
{
str
=
str
.
substring
(
1
);
}
if
(
str
.
endsWith
(
","
))
{
str
=
str
.
substring
(
0
,
str
.
length
()
-
1
);
}
return
str
;
}
/**
* 补全两位数字
* @param str
* @return
*/
public
static
String
fulfuill
(
String
str
)
{
if
(
str
.
length
()
==
1
)
return
"0"
+
str
;
return
str
;
}
/**
* 补全num位数字
* @param str
* @return
*/
public
static
String
fulfuill
(
int
num
,
String
str
)
{
if
(
str
.
length
()
==
num
)
{
return
str
;
}
else
{
int
fulNum
=
num
-
str
.
length
();
String
tmpStr
=
""
;
for
(
int
i
=
0
;
i
<
fulNum
;
i
++){
tmpStr
+=
"0"
;
}
return
tmpStr
+
str
;
}
}
/**
* 从拼接的字符串中提取字段
* @param str 字符串
* @param delimiter 分隔符
* @param field 字段
* @return 字段值
* name=zhangsan|age=18
*/
public
static
String
getFieldFromConcatString
(
String
str
,
String
delimiter
,
String
field
)
{
try
{
String
[]
fields
=
str
.
split
(
delimiter
);
for
(
String
concatField
:
fields
)
{
// searchKeywords=|clickCategoryIds=1,2,3
if
(
concatField
.
split
(
"="
).
length
==
2
)
{
String
fieldName
=
concatField
.
split
(
"="
)[
0
];
String
fieldValue
=
concatField
.
split
(
"="
)[
1
];
if
(
fieldName
.
equals
(
field
))
{
return
fieldValue
;
}
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
setFieldInConcatString
(
"name=xuruyun,age=55"
,
","
,
"name"
,
"bochen"
));
}
/**
* 从拼接的字符串中给字段设置值
* @param str 字符串
* @param delimiter 分隔符
* @param field 字段名
* @param newFieldValue 新的field值
* @return 字段值
* name=zhangsan123
* age=18
* name=zhangsan|age=18
*/
public
static
String
setFieldInConcatString
(
String
str
,
String
delimiter
,
String
field
,
String
newFieldValue
)
{
// searchKeywords=iphone7|clickCategoryIds=1,2,3
String
[]
fields
=
str
.
split
(
delimiter
);
for
(
int
i
=
0
;
i
<
fields
.
length
;
i
++)
{
String
fieldName
=
fields
[
i
].
split
(
"="
)[
0
];
if
(
fieldName
.
equals
(
field
))
{
String
concatField
=
fieldName
+
"="
+
newFieldValue
;
fields
[
i
]
=
concatField
;
break
;
}
}
StringBuffer
buffer
=
new
StringBuffer
(
""
);
for
(
int
i
=
0
;
i
<
fields
.
length
;
i
++)
{
buffer
.
append
(
fields
[
i
]);
if
(
i
<
fields
.
length
-
1
)
{
buffer
.
append
(
"|"
);
}
}
return
buffer
.
toString
();
}
/**
* age=19
* name=jack
* @param str
* @param delimiter
* name=zhangsan|age=18
* @return
*
*/
public
static
Map
<
String
,
String
>
getKeyValuesFromConcatString
(
String
str
,
String
delimiter
)
{
Map
<
String
,
String
>
map
=
new
HashMap
<>
();
try
{
String
[]
fields
=
str
.
split
(
delimiter
);
for
(
String
concatField
:
fields
)
{
// searchKeywords=|clickCategoryIds=1,2,3
if
(
concatField
.
split
(
"="
).
length
==
2
)
{
String
fieldName
=
concatField
.
split
(
"="
)[
0
];
String
fieldValue
=
concatField
.
split
(
"="
)[
1
];
map
.
put
(
fieldName
,
fieldValue
);
}
}
return
map
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
public
static
Integer
convertStringtoInt
(
String
str
)
{
try
{
return
Integer
.
parseInt
(
str
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
}
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