java对时间的加减

今天项目中要用到5分钟前的时间,在网上找了很久才挖掘出这几句代码:
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		try {
			Date date = sdf.parse("2012-05-29 11:40:00");
			int minutes = date.getMinutes();
			minutes = minutes-5;
			date.setMinutes(minutes);
			System.out.println(sdf.format(date));
			
		} catch (ParseException e) {
			e.printStackTrace();
		}

对时分秒天月年都能操作,很方便。。所以分享一下
### 如何在 Java 中对 Timestamp 进行加减操作 为了执行时间戳的加减,在 Java 中通常会使用 `Calendar` 类来处理这种需求。通过设置 `Calendar` 的时间字段并调用其方法来进行增加或减少指定的时间间隔。 对于简单的级增减,可以直接利用 `Timestamp` 对象内部存储的毫数进行计算: ```java import java.sql.Timestamp; import java.util.concurrent.TimeUnit; public class TimeManipulation { public static void main(String[] args) { // 创建一个新的 Timestamp 实例 Timestamp originalTimestamp = new Timestamp(System.currentTimeMillis()); // 定义要增加或减少的数 long secondsToAddOrSubtract = 60L; // 增加或减少的具体数值 // 计算新的时间戳 (增加) Timestamp increasedTimestamp = new Timestamp(originalTimestamp.getTime() + TimeUnit.SECONDS.toMillis(secondsToAddOrSubtract)); System.out.println("Increased by " + secondsToAddOrSubtract + " seconds: " + increasedTimestamp); // 计算新的时间戳 (减少) Timestamp decreasedTimestamp = new Timestamp(originalTimestamp.getTime() - TimeUnit.SECONDS.toMillis(secondsToAddOrSubtract)); System.out.println("Decreased by " + secondsToAddOrSubtract + " seconds: " + decreasedTimestamp); } } ``` 上述代码展示了如何创建一个基于当前时间的新 `Timestamp` 对象,并对其进行级别的加法和减法运算[^1]。这里采用的是直接修改底层表示时间的毫值的方式完成操作。这种方式简单明了,适用于大多数场景下的快速开发需求。 另一种更灵活的做法是借助于 `Calendar` 来实现相同的功能,这允许更加复杂的日期逻辑处理: ```java import java.sql.Timestamp; import java.util.Calendar; public class CalendarBasedTimeManipulation { public static void main(String[] args) { // 初始化 Calendar 并设定初始时间为给定的 Timestamp Calendar calendarInstance = Calendar.getInstance(); Timestamp initialTimestamp = new Timestamp(System.currentTimeMillis()); calendarInstance.setTimeInMillis(initialTimestamp.getTime()); // 添加或移除特定数量的 int secondsToModify = 60; // 修改量为正则添加,负则删除 calendarInstance.add(Calendar.SECOND, secondsToModify); // 获取调整后的 Timestamp Timestamp modifiedTimestamp = new Timestamp(calendarInstance.getTimeInMillis()); System.out.println("Modified Timestamp after adding/removing " + Math.abs(secondsToModify) + " second(s): " + modifiedTimestamp); } } ``` 这段程序说明了怎样运用 `Calendar` API 执行同样的任务——即向现有的时间戳上加上或减去一定数量的[^4]。这种方法提供了更多的灵活性,尤其是在涉及到跨日历周期的变化更为有用。 无论是哪种方式都能有效地达到目的,具体选择取决于实际应用场景和个人偏好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值