时间段查询将00:00:00更换成23:59:59-创新互联
目录
成都创新互联公司网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,成都网站设计、做网站、成都外贸网站建设公司,塑造企业网络形象打造互联网企业效应。一.问题描述
二.解决问题
2.1.思路一(时间戳赋值)
2.2思路二(LocalDateTime 方法赋值)
三.总结
一.问题描述
在我们作web项目的时候总会有时间段的查询条件
例如:
问题:
前端传到后台的时间: reportStartTime: 2023-01-01 00:00:00
reportEndTime: 2023-01-13 00:00:00
在这种时间段查询是前端用时间组件写出来的,但是列表的上报时间是从数据库中读出来的, 但是数据库中的上报时间是
如果用sql查询的话 2023-01-13 10:49:23 这个时间是查不到的
但是我们页面中的上报时间是date类型的
如图:
所以就是时间组件的最火传过来的时间都能看到
如图:
二.解决问题 2.1.思路一(时间戳赋值)在出现这个问题后, 我曾经想过, 将reportEndTime 用时间戳的方式给reportEndTime 重新赋值
Long endtime = reportEndTime.getTime();
//加一天减一秒
Long endTime+(1000*60*60*24-1000)
//时间戳转dateTime
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
没有中间new Long(timeStamp),因为他们都是精确到毫秒的时间戳,不用再乘以1000进行转换 long longTimeStamp = new Long(new Long(timeStamp) * 1000); Date date = new Date(longTimeStamp); String dareString = simpleDateFormat.format(date); return dareString;
2.2思路二(LocalDateTime 方法赋值)LocalDateTime简介:
1. java.util.Date是用于表示一个日期和时间的对象(注意与java.sql.Date区分,后者用在数据库中没有格式化的Date),它打印出的日期可读性差,可以使用SimpleDateFormat对时间进行格式化,但SimpleDateFormat又是线程不安全,包括format和parse方法,而在时间的计算方面不是很方便。
2. java.util.Canlendar 可以用于获取并设置年、月、日、时、分、秒,它和Date比,主要多了一个可以做简单的日期和时间运算的功能,Canlendar 变量是全局变量,会导致脏变量情况产生,并且这个共享变量没有做线程安全控制,也就是多线程的情况下是线程不安全的。
3. Java8出的新的时间日期API都是线程安全的比如LocalDate、LocalTime、LocalDateTime这三个类,计算功能强大,并且性能更好,代码更简洁。
看小demo: 这里用到了plusDay(1) 加一天 minusSeconds(1) 减一秒 具体LocalDateTime方法和讲解看文章:LocalDateTime用法_localdatetime默认加三个月_遨游在知识的海洋里无法自拔的博客-博客
import java.text.ParseException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateTest {
public static void main(String[] args) throws ParseException {
//具有转换功能的对象
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//设置参数
String startTime = "2023-01-01 00:00:00";
String endTime = "2023-01-13 00:00:00";
// //String转DateTime
// Date starDate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(startTime);
// Date endDate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(endTime);
// LocalDateTime startDate = LocalDateTime.parse(startTime,df);
LocalDateTime endDate = LocalDateTime.parse(endTime,df);
//将 endTime 加一天再减一秒
LocalDateTime localDateTime = endDate.plusDays(1);
//减一秒
LocalDateTime endDateTime = localDateTime.minusSeconds(1);
System.out.println(startTime);
System.out.println(endDateTime);
}
}
三.总结1.LocalDateTime 是一个处理时间问题很灵活的api 有兴趣的话和我一样的初学者可以了解学习一下
2.除这两种方法还有其他的方法吗, 例如hutool处理时间的api DateUtil 处理时间的工具类, 如果有其他更好的方法请在评论区分享链接, 一起讨论
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前标题:时间段查询将00:00:00更换成23:59:59-创新互联
当前路径:http://azwzsj.com/article/djeijj.html