当需要对Date时间类型进行加减int类型分钟运算
Date date = new Date();
//Sun Mar 06 14:12:14 CST 2022
int hour = 25;
int minutes = 70;
int second = 3;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(simpleDateFormat.format(date));
//初始时间↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 2022-03-06 14:23:33 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
//创建时间工具类
Calendar cal = Calendar.getInstance();
//设置时间坐标
cal.setTime(date);
//给时间坐标加上hour小时
cal.add(Calendar.HOUR,hour);
System.out.println(simpleDateFormat.format(cal.getTime()));
//加时时间↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 2022-03-07 15:24:12 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑可以跨天
//给时间坐标加上minutes分钟
cal.add(Calendar.MINUTE,minutes );
System.out.println(simpleDateFormat.format(cal.getTime()));
//加分时间↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 2022-03-06 16:33:33 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑可以跨小时
//给时间坐标减去second秒
cal.add(Calendar.SECOND,-second );
System.out.println(simpleDateFormat.format(cal.getTime()));
//减秒时间↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 2022-03-06 16:33:30 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑可以跨分钟
List<Event> event = new ArrayList();
Event event1 = new Event();
event1.setDeptId(18);
event1.setEventType("小明");
Event event2 = new Event();
event2.setDeptId(19);
event2.setEventType("小红");
Event event3 = new Event();
event3.setDeptId(20);
event3.setEventType("小刚");
event.add(event1);
event.add(event2);
event.add(event3);
List<String> eventType = event.stream().map(Event::getEventType)
.collect(Collectors.toList());
System.out.println(eventType);
//[小明, 小红, 小刚]
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
//@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date receiveTime;
//JSONField和JsonFormat使用一个,一个不行换另一个
对集合的处理(常用) ArrayList<Integer> list = new ArrayList<>();
for(int i = 0; i<=10;i++){
list.add(i);
list.add(i++);
}
System.out.println(list);
//[0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10]
//获取list集合中小于5的元素集合
List<Integer> collect = list.stream().filter(i -> (i <= 5)).collect(Collectors.toList());
System.out.println(collect);
//[0, 0, 2, 2, 4, 4]
//做运算
List<Integer> collect1 = list.stream().map(i -> ++i).collect(Collectors.toList());
System.out.println(collect1);
//[1, 1, 3, 3, 5, 5, 7, 7, 9, 9, 11, 11]
//去重
List<Integer> collect2 = list.stream().distinct().collect(Collectors.toList());
System.out.println(collect2);
//[0, 2, 4, 6, 8]
//返回第几个之前的元素
List<Integer> collect3 = list.stream().limit(7).collect(Collectors.toList());
System.out.println(collect3);
//[0, 0, 2, 2, 4, 4, 6]
//获取第几个之后的元素
List<Integer> collect4 = list.stream().skip(7)
.collect(Collectors.toList());
System.out.println(collect4);
//[6, 8, 8]
//进阶-根据集合中对象的某个字段去重
//修改二级单位bug
List<DbZone> dbZonesByGroupStreeCode1 = dbZonesByGroupStreeCode.stream().collect(
Collectors.collectingAndThen(
//去除重复StreetCode/新建ArrayList集合
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DbZone::getStreetCode))), ArrayList::new));
sql通过经纬度搜索范围 SELECT
*
FROM
(
SELECT
qj.JJDBH,
qj.DHDWJD,
qj.DHDWWD,
ROUND(
6371 * 2 * ASIN(
SQRT(
POW(
SIN(( 入参纬度 * PI()/ 180-纬度字段名 * PI()/ 180 )/ 2 ), 2 )
+ COS( 入参纬度 * PI()/ 180 )
* COS( 纬度字段名 * PI()/ 180 )
* POW( SIN(( 入参经度 * PI()/ 180-经度字段名 * PI()/ 180 )/ 2 ), 2 )
))* 1000
) AS `range`
FROM
表名
) AS sub
WHERE
`range` < 距离(米)
ORDER BY
`range`