一.java方式
- 采用Hutool工具包,方便的进行时间的管理和转换,极大的减少了代码。DateUtil Hutool官网将生成的时间往前偏移999毫秒即可。
DateUtil.endOfDay(DateUtil.date()).offset(DateField.MILLISECOND,-999); //或者 System.out.println(DateUtil.beginOfDay(new Date())); System.out.println(DateUtil.endOfDay(new Date()));
-
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;
-
LocalDateTime 方法赋值
- 用到了plusDay(1) 加一天 minusSeconds(1) 减一秒
-
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); } }
二.mysql方式
参考文档:SQL Server 使用DATEADD()函数实现秒、分钟、小时、日、周、月份、季度、年份加减_旭东怪的博客-CSDN博客
//加一分。减1秒
SELECT DATEADD(s,-1,cast(DATEADD(dd,1,字段名) as varchar(10))) from 表名
DATEADD()
说明:在日期中添加或减去指定的时间间隔。
语法:
DATEADD(datepart,number,date)
参数:
(1)date 参数是合法的日期表达式,类型可以是datetime、smalldatetime、char。
(2)number 是您希望添加的间隔数,最好是整数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
(3)datepart 参数可以是下面表格的值。
datepart | 值 |
---|---|
年份(year) | yy , yyyy , year |
季度(quarter) | qq , q , quarter |
月份(month) | mm , m , month |
年中的日(day of year) | dy, y |
日(day) | dd , d , day |
周(week) | wk , ww , week |
星期(weekday) | dw, w |
小时(hour) | hh , hour |
分钟(minute) | mi , n , minute |
秒(second) | ss , s , second |
毫秒(millisecond | ms |
微秒(microsecond) | mcs |
纳秒(nanosecond) | ns |
2 实现秒加减
--减100秒
SELECT DATEADD(ss,-100,'2020-09-03')--2020-09-02 23:58:20.000
SELECT DATEADD(s,-100,'2020-09-03')--2020-09-02 23:58:20.000
SELECT DATEADD(second,-100,'2020-09-03')--2020-09-02 23:58:20.000
--加100秒
SELECT DATEADD(ss,100,'2020-09-03')--2020-09-03 00:01:40.000
SELECT DATEADD(s,100,'2020-09-03')--2020-09-03 00:01:40.000
SELECT DATEADD(second,100,'2020-09-03')--2020-09-03 00:01:40.000
3 实现分钟加减
--减1分钟
SELECT DATEADD(mi,-1,'2020-09-03')--2020-09-02 23:59:00.000
SELECT DATEADD(n,-1,'2020-09-03')--2020-09-02 23:59:00.000
SELECT DATEADD(minute,-1,'2020-09-03')--2020-09-02 23:59:00.000
--加1分钟
SELECT DATEADD(mi,1,'2020-09-03')--2020-09-03 00:01:00.000
SELECT DATEADD(n,1,'2020-09-03')--2020-09-03 00:01:00.000
SELECT DATEADD(minute,1,'2020-09-03')--2020-09-03 00:01:00.000
4 实现小时加减
--减1小时
SELECT DATEADD(hh,-1,'2020-09-03')--2020-09-02 23:00:00.000
SELECT DATEADD(hour,-1,'2020-09-03')--2020-09-02 23:00:00.000
--加1小时
SELECT DATEADD(hh,1,'2020-09-03')--2020-09-03 01:00:00.000
SELECT DATEADD(hour,1,'2020-09-03')--2020-09-03 01:00:00.000
5 实现日加减
--减1天
SELECT DATEADD(dd,-1,'2020-09-03')--2020-09-02 00:00:00.000
SELECT DATEADD(d,-1,'2020-09-03')--2020-09-02 00:00:00.000
SELECT DATEADD(day,-1,'2020-09-03')--2020-09-02 00:00:00.000
--加1天
SELECT DATEADD(dd,1,'2020-09-03')--2020-09-04 00:00:00.000
SELECT DATEADD(d,1,'2020-09-03')--2020-09-04 00:00:00.000
SELECT DATEADD(day,1,'2020-09-03')--2020-09-04 00:00:00.000
6 实现周加减
-- 2020-09-03星期四
--减1周
SELECT DATEADD(ww,-1,'2020-09-03')--2020-08-27 00:00:00.000星期四
SELECT DATEADD(wk,-1,'2020-09-03')--2020-08-27 00:00:00.000星期四
SELECT DATEADD(week,-1,'2020-09-03')--2020-08-27 00:00:00.000星期四
--加1周
SELECT DATEADD(ww,1,'2020-09-03')--2020-09-10 00:00:00.000星期四
SELECT DATEADD(ww,1,'2020-09-03')--2020-09-10 00:00:00.000星期四
SELECT DATEADD(ww,1,'2020-09-03')--2020-09-10 00:00:00.000星期四
7 实现月份加减
--减1月
SELECT DATEADD(m,-1,'2020-09-03')--2020-08-03 00:00:00.000
SELECT DATEADD(mm,-1,'2020-09-03')--2020-08-03 00:00:00.000
SELECT DATEADD(month,-1,'2020-09-03')--2020-08-03 00:00:00.000
--加1月
SELECT DATEADD(m,1,'2020-09-03')--2020-09-03 00:00:00.000
SELECT DATEADD(mm,1,'2020-09-03')--2020-09-03 00:00:00.000
SELECT DATEADD(month,1,'2020-09-03')--2020-09-03 00:00:00.000
8 实现季度加减
--减1季度
SELECT DATEADD(q,-1,'2020-09-03')--2020-06-03 00:00:00.000
SELECT DATEADD(qq,-1,'2020-09-03')--2020-06-03 00:00:00.000
SELECT DATEADD(quarter,-1,'2020-09-03')--2020-06-03 00:00:00.000
--加1季度
SELECT DATEADD(q,1,'2020-09-03')--2020-12-03 00:00:00.000
SELECT DATEADD(qq,1,'2020-09-03')--2020-12-03 00:00:00.000
SELECT DATEADD(quarter,1,'2020-09-03')--2020-12-03 00:00:00.000
9 实现年份加减
--减1年
SELECT DATEADD(yy,-1,'2020-09-03')--2019-09-03 00:00:00.000
SELECT DATEADD(yyyy,-1,'2020-09-03')--2019-09-03 00:00:00.000
SELECT DATEADD(year,-1,'2020-09-03')--2019-09-03 00:00:00.000
--加1年
SELECT DATEADD(yy,1,'2020-09-03')--2021-09-03 00:00:00.000
SELECT DATEADD(yyyy,1,'2020-09-03')--2021-09-03 00:00:00.000
SELECT DATEADD(year,1,'2020-09-03')--2021-09-03 00:00:00.000