java 根据系统日期获取前一天、后一天时间(根据初始日期推算出期望(向前/向后)日期) 20253296编辑
Heaven helps those who help themselves
资深码农+深耕理财=财富自由
欢迎关注
资深码农+深耕理财=财富自由
欢迎关注

java 根据系统日期获取前一天、后一天时间(根据初始日期推算出期望(向前/向后)日期)
Created by Marydon on 2019-04-08 17:39
1.情景展示
java 根据系统当前日期获取前一天日期、后一天日期,或者根据初始日期推算出期望(向前/向后)日期。
2.解决方案
导包
1 2 3 4 | import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; |
方法一:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | /** * 根据初始日期推算期望(向前/向后)日期 * @param initTime * 初始日期(initTime可以是null、Date、String数据类型) * @param n * 向前/向后推算n天(n可以是正整数、0、负整数) * @return * 推算后的日期字符串 */ public static String getCalculateDay(Object initTime, int n){ // 返回推算后的日期 String calculateDay = "" ; try { // 实例化日历类Calendar Calendar calendar = Calendar.getInstance(); // 定义日期格式化样式 SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" ); // 初始日期 Date initDate = null ; // 判断参数类型 if ( null == initTime) { // 取系统当前时间 initDate = new Date(); } else if (initTime instanceof Date) { initDate = (Date)initTime; } else { // 日期格式字符串转换成日期类Date initDate = sdf.parse((String)initTime); } // 设置日历时间 calendar.setTime(initDate); // 设置推算后的日历时间 calendar.add(Calendar.DATE, n); // 获取推算后的日期 Date calculateDate = calendar.getTime(); // 进行格式化 calculateDay = sdf.format(calculateDate); } catch (ParseException e) { e.printStackTrace(); } return calculateDay; } |
方法二:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | /** * 根据初始日期推算期望(向前/向后)日期 * @param initTime * 初始日期 * @param n * 向前/向后推算n天 * @return * 推算后的日期 */ public static String getCalculateDay2(Object initTime, int n) throws ParseException{ // 返回推算后的日期 String calculateDay = "" ; SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" ); // 初始日期 Date initDate = null ; if ( null == initTime) initDate = new Date(); else if (initTime instanceof Date) initDate = (Date)initTime; else initDate = sdf.parse((String)initTime); // 转换成距离1970年0时0分的毫秒数 Long initMilliSeconds = initDate.getTime(); // 一天代表的毫秒数 int oneDayTime = 24 * 60 * 60 * 1000 ; initMilliSeconds += oneDayTime * n; // 推算出的日期 Date calculateDate = new Date(initMilliSeconds); calculateDay = sdf.format(calculateDate); return calculateDay; } |
3.测试
1 2 3 4 5 | public static void main(String[] args) throws ParseException { // 获取后一天所在日期 System.out.println(getCalculateDay( null , 1 )); // 2019-04-09 System.out.println(getCalculateDay2( null , 1 )); // 2019-04-09 } |
写在最后
哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!
相关推荐:
与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。
您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!
↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/10672030.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2018-04-08 js改变下拉框内容
2018-04-08 eclipse 关闭web项目无用校验