获取指定时间的前一天

PHP与MySQL日期操作技巧
PHP获取指定日期的前一天
echo date("Y-m-d H:i:s",(strtotime("2016-12-23 16:14:59") - 3600*24));


mysql:
获取当前日期(年月日): SELECT CURDATE()
获取当前日期(年月日时分秒):select NOW()
获取当前日期(年月日时分秒的前一天):select date_sub(NOW(),interval 1 day);
获取当前日期(年月日的前一天):select date_sub(curdate(),interval 1 day);
获取当前日期(年份):SELECT YEAR(DATE_SUB(CURDATE(),INTERVAL 1 DAY));
### Java 中获取指定日期前三天相同时间的方法 为了实现这一功能,可以采用不同的方式取决于所使用的Java版本。早期版本中通常会使用`java.util.Calendar`配合`java.util.Date`完成操作[^2];而在Java 8之后,则推荐使用更加现代化且线程安全的`java.time.LocalDate`与`java.time.LocalDateTime`等类来进行处理[^5]。 #### 方法一:基于 `Calendar` 通过设置并调整`Calendar`实例中的字段来达到目标: ```java import java.util.Calendar; import java.util.Date; public class PreviousDays { public static void main(String[] args) { // 创建 Calendar 实例,并初始化为当前时间 Calendar calendar = Calendar.getInstance(); // 设置时间为特定日期(此处假设已有一个指定日期) // 这里仅作为示范,默认取系统当前时间 // 减少三天 calendar.add(Calendar.DAY_OF_MONTH, -3); // 输出结果 System.out.println("Three days ago was: " + calendar.getTime()); } } ``` 此段代码展示了如何创建一个`Calendar`对象并通过调用其`add()`方法减少三日从而获得过去某一天的具体时刻[^4]。 #### 方法二:基于 `LocalDateTime` 对于现代应用而言,建议优先考虑使用`java.time`包下的APIs,因为它们提供了更好的可读性和更强大的特性支持。以下是利用`LocalDateTime`计算指定日期前一天同一时刻的例子: ```java import java.time.LocalDateTime; import java.time.ZoneId; import java.util.Date; public class LocalDateTimeExample { public static void main(String[] args) { // 假设已有某个 Date 类型的目标日期 timePoint Date timePoint = new Date(); // 此处应替换为目标日期 // 将 Date 转换为 LocalDateTime LocalDateTime dateTime = timePoint.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); // 计算三天前的时间点 LocalDateTime threeDaysAgo = dateTime.minusDays(3); // 如果需要返回 Date 对象,还可以再转回去 Date resultDate = Date.from(threeDaysAgo.atZone(ZoneId.systemDefault()).toInstant()); // 打印结果 System.out.println("Three days before the specified date and time is: " + resultDate); } } ``` 这段程序首先把传入的`Date`转换成`LocalDateTime`形式以便于操作,接着运用流利接口风格的方法链轻松实现了对日期的操作——即减去了整整三天而保持原有时间不变。最后如果有必要的话还能再次变回传统的`Date`类型用于兼容旧版组件或函数参数传递需求。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值