Java接口统一格式模板以及获取前一天时间固定时间方法
- 前言
- Java接口统一格式模板
- 获取前一天时间固定时间方法(add和set区别)
前言
今天在写接口文档发现返回参数写的不太规范,因此这个时候能够采用封装一个实体类,统一返回固定模板格式的内容。
有一个接口用到了时间的比较,记录一下,防止忘记
Java接口统一格式模板
枚举类ResponseCode:定义返回码code及提示信息msg(根据具体情况而定,可以加status等)
package com.it.upload.dto.res;
/**
* code码枚举类
*/
public enum ResponseCode {
/** 成功 */
SUCCESS("200", "成功"),
/** 操做失败 */
ERROR("500", "操做失败");
private ResponseCode(String value, String msg){
this.val = value;
this.msg = msg;
}
public String val() {
return val;
}
public String msg() {
return msg;
}
private String val;
private String msg;
}
封装类ResultData: 定义code、msg及数据data
package com.it.upload.dto.res;
import lombok.Data;
/**
* 返回样式封装
*
*/
@Data
public class ResultData {
private String code;
private String msg;
private Object data;
public static ResultData success(Object data) {
return resultData(ResponseCode.SUCCESS.val(), ResponseCode.SUCCESS.msg(), data);
}
public static ResultData success(Object data, String msg) {
return resultData(ResponseCode.SUCCESS.val(), msg, data);
}
public static ResultData fail(String code, String msg) {
return resultData(code, msg, null);
}
public static ResultData fail(String code, String msg, Object data) {
return resultData(code, msg, data);
}
private static ResultData resultData(String code, String msg, Object data) {
ResultData resultData = new ResultData();
resultData.setCode(code);
resultData.setMsg(msg);
resultData.setData(data);
return resultData;
}
}
成功示例:
{
"code": "200",
"msg": "成功",
"data": null
}
失败示例:
{
"code": "500",
"msg": "保存过程当中发生异常,请检查!",
"data": null
}
获取前一天时间固定时间方法(add和set区别)
目的:数据库拿到的时间和每天系统时间的前一天9:30时间作比较(每天都需要调用)
- add:在原来的基础上进行加减value
- set:直接设值,不考虑原来的时间值
测试运行:以(Calendar.MONTH,n)为例,如果是set,表示设置当前时间,正常的月份从0开始,如4的时候表示设置为5月,负数表示设置为去年的某个时段,如-2,表示设置为去年的11月,-1为去年的十二月。连续设置的时候以最后一次设置的为准(中间如果调用了getTime()函数,基准会变)
add:表示在当前时间的基础上做改变,每执行一次就会改变一次时间基准
注意:这里是String类型的日期做的比较(数据库拿到的日期是String,省事就用String比较了)
//判断创建时间是不是大于昨天9.30
//从数据库获取的时间createdAt
String createdAt = issue.getCreatedAt();
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
//设置时间为当前系统时间
calendar.setTime(date);
//注意这里用add,在当前时间上减一天
calendar.add(Calendar.DAY_OF_MONTH, -1);
//设置时分秒是要设置为固定的9:30 ,用set
calendar.set(Calendar.HOUR_OF_DAY, 9);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 0);
//calendar.getTime() 转为date类型
String times = simpleDateFormat.format(calendar.getTime());
//比较时间大小,大于0,前面时间大
int m = times.compareTo(createdAt);
if (m < 0) {
//没按时创建
if (!problem.contains("没有按时创建任务")) {
temp = "没有按时创建任务";
problem = temp + "," + problem;
}
}