1.获取一个月前日期
1)
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String startTimeYoY = LocalDate.parse(startTime, formatter).minusYears(1).format(formatter);
String endTimeYoY = LocalDate.parse(endTime, formatter).minusYears(1).format(formatter);
//获取当前日期
Date date = new Date();
//将时间格式化成yyyy-MM-dd HH:mm:ss的格式
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//创建Calendar实例
Calendar cal = Calendar.getInstance();
//设置当前时间
cal.setTime(date);
//在当前时间基础上减一年
cal.add(Calendar.YEAR, -1);
System.out.println(format.format(cal.getTime()));
//在当前时间基础上减一月
cal.add(Calendar.MONTH,-1);
System.out.println(format.format(cal.getTime()));
//同理增加一天的方法:
cal.add(Calendar.DATE, 1);
System.out.println(format.format(cal.getTime()));
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String startTimeYoY =LocalDate.parse(startTime,formatter).minusYears(1).format(formatter);
String endTimeYoY = LocalDate.parse(endTime, formatter).minusYears(1).format(formatter);
2.集合拆分
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>21.0</version>
</dependency>
public static void main(String[] args) {
//需要进行分组的集合
List<Integer> targetList = new ArrayList<>();
targetList.add(1);
targetList.add(2);
targetList.add(3);
targetList.add(4);
targetList.add(5);
targetList.add(6);
//集合分组。2代表 每两个分成一组。已知集合size=6,两个一组即分为三组
List<List<Integer>> partition = Lists.partition(targetList, 2);
System.out.println("切分后的数组,index【0】:"+partition.get(0));
System.out.println("切分后的数组,index【1】:"+partition.get(1));
System.out.println("切分后的数组,index【2】:"+partition.get(2));
}
需要注意:切分后的数组其实是对原数组的一种引用,对切分后数组的操作和对原数组的操作都会彼此影响
3.stream流
1)排序
picYoyList = picYoyList.stream().sorted(Comparator.comparing(CPGYHYreport::getProductionDate).thenComparing(Comparator.comparing(CPGYHYreport::getCreateTime))).collect(Collectors.toList());
4.时间比较
Date now=new Date();
if(now.compareTo(DateUtil.parseDate(appExamManage.getStart()))>=0){
appExamManage.setStatus(1);
}
5.计算时间差
Date start=df.parse(paper.getStart());
Date end=df.parse(paper.getEnd());
int startN = (int)(start.getTime()/(1000 * 60));
int endN = (int)(end .getTime()/(1000 * 60));
totalTime=endN -startN ;
6.计算程序运行时间
StopWatch stopWatch = new StopWatch();
stopWatch.start();
Thread.sleep(1);
stopWatch.stop();
System.out.println(stopWatch.toString());
System.out.println(stopWatch.getTotalTimeSeconds());
7.SQL
计算时间差
---两个时间差 hh:mm:ss
left(timediff(u.oper_time,e.start),8)
--时间差 分钟
TIMESTAMPDIFF(minute,m.start,m.end)
查询一周内的
exec_date> DATE_SUB(now(), INTERVAL 7 DAY) #7个自然日
create_time > subdate(curdate()-1,date_format(curdate()-1,'%w')-1) #本周的周一
select subdate(curdate()-1,date_format(curdate()-1,'%w')-7) #本周的周日
8.git常用命令
查看所有未管理的文件
git status
回退到某个提交
git reset --hard 26c32a71
9.注解实现简单日期格式转换
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
10.随机数生成
Random random = new Random();
// 生成一个范围在0到3之间的随机数
int randomNumber = random.nextInt(4) ;
11.获取7天前的日期
12.公式计算
//支持括号,函数等
ScriptEngineManager().getEngineByName("JavaScript").eval(formula);
13.java保留小数
double d=4.5;
DecimalFormat df1=new DecimalFormat("#.##");//#不会强制保留
DecimalFormat df2=new DecimalFormat("0.00");//0会强制保留2位小数
System.out.println(df1.format(d));
System.out.println(df2.format(d));
输出结果