概述
时间日期处理
- SpringBoot中接收日期格式处理
- Mybatis中比较时间
- endTime+1天
- 通过java来对日期进行字符串转换 以及 加减
SpringBoot中接收日期格式处理
get请求,在实体类字段上添加
@DateTimeFormat(pattern = "yyyy/MM/dd")
注解
controller
@GetMapping("/getDate")
public String getDate(DateGetEntity entity){
System.out.println(entity);
return entity.toString();
}
entity
public class DateGetEntity {
@DateTimeFormat(pattern = "yyyy/MM/dd")
private Date startTime;
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
@Override
public String toString() {
return "DataEntity{" +
"startTime=" + startTime +
'}';
}
}
post请求,需要在实体类的字段上添加@JsonFormat(timezone="GMT+8",pattern="yyyy-MM-dd")
注解
controller
@PostMapping("/postDate")
public String postDate(@RequestBody DatePostEntity entity){
System.out.println(entity);
return entity.toString();
}
entity
public class DatePostEntity {
@JsonFormat(timezone="GMT+8",pattern="yyyy/MM/dd")
private Date startTime;
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
@Override
public String toString() {
return "DataEntity{" +
"startTime=" + startTime +
'}';
}
}
Mybatis中比较时间
<select id="findUserByName" parameterType="com.example.demo.entity.dto.GetUserDto" resultType="com.example.demo.entity.User">
select <include refid="Base_Column_List"/> from user
<where>
<if test="name!=null and name!=''">
and `name` like #{name,jdbcType=VARCHAR}
</if>
<if test="startTime != null ">
and create_time <![CDATA[>=]]> #{startTime,jdbcType=TIMESTAMP}
</if>
<if test="endTime != null">
and create_time <![CDATA[<=]]> #{endTime,jdbcType=TIMESTAMP}
</if>
</where>
</select>
在Mybatis中比较时间,大于小于需要进行cd转译。
endTime+1天
在世纪工作中,进行时间范围查询时,前端传递的时间参数endTime
,往往不包含时分秒,默认是 0点0分0秒,导致的结果就是时间范围查询缺失最后一天。这种场景可以使用 mysql的 DATA_ADD
函数来解决。
在Mybatis中可以这样写:
<select id="findUserByName" parameterType="com.example.demo.entity.dto.GetUserDto" resultType="com.example.demo.entity.User">
select <include refid="Base_Column_List"/> from user
<where>
<if test="name!=null and name!=''">
and `name` like #{name,jdbcType=VARCHAR}
</if>
<if test="startTime != null ">
and create_time <![CDATA[>=]]> #{startTime,jdbcType=TIMESTAMP}
</if>
<if test="endTime != null">
and create_time <![CDATA[<=]]> DATE_ADD(#{endTime,jdbcType=TIMESTAMP},INTERVAL 1 DAY)
</if>
</where>
</select>
执行查看sql日志:
通过java来对日期进行字符串转换 以及 加减
public class DateUtil {
public static Date stringToDate(String dateStr) throws ParseException {
SimpleDateFormat format=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
return format.parse(dateStr);
}
public static String dateToString(Date date){
SimpleDateFormat format=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
return format.format(date);
}
public static Date addDate(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE,1);
return calendar.getTime();
}
}
最后
以上就是妩媚导师为你收集整理的时间日期处理的全部内容,希望文章能够帮你解决时间日期处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复