1.情景展示

   java 根据系统当前日期获取前一天日期、后一天日期,或者根据初始日期推算出期望(向前/向后)日期。

2.解决方案

  导包

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

  方法一:

/**
* 根据初始日期推算期望(向前/向后)日期
* @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;
}

  方法二:

/**
* 根据初始日期推算期望(向前/向后)日期
* @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.测试

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
}

  

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

相关推荐:

 

java 根据系统日期获取前一天、后一天时间(根据初始日期推算出期望(向前/向后)日期)的更多相关文章

  1. java日期获取前一天和后一天

    import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import j ...

  2. Java中获取前一天和后一天时间

    今天在开发项目的时候遇到一个问题就是怎么获取当前时间的前一天和后一天,这个实现的逻辑并不复杂,自己要写的话的也不是难事,但是貌似感觉没必要自己写这样的方法,想想Java中的Calendar类应该有这样 ...

  3. java获得指定日期的前一天,后一天的代码

    /** * 获得指定日期的前一天 * @param specifiedDay * @return * @throws Exception */ public static String getSpec ...

  4. Java日期获取需求大全

    刚进公司,作为熟悉技术,为公司做了一个小的点餐系统的网站,其中大量用到了时间日期作为唯一标示或是显示设置.特总结了一下和大家分享. package com.lucis.ordering.Utils; ...

  5. php获取指定日期的前一天,前一月,前一年日期

    ## php获取指定日期的前一天,前一月,前一年日期   前一天的日期为: date("Y-m-d",strtotime("-1 days",strtotime ...

  6. JavaScript如何实现日期的前一天后一天转变

    1.生成时间 var data =new Date(); 2.获得时间戳     什么是时间戳? 时间戳是指格林威治时间自1970年1月1日(00:00:00 GTM)至当前时间的总秒数.它也被称为U ...

  7. java获取前一天时间SimpleDateFormat,java判断某个时间段

    java获取前一天时间SimpleDateFormat SimpleDateFormat predf = new SimpleDateFormat("yyyy-MM-dd"); D ...

  8. angularjs1.X获取前一天日期

    $scope.getDate = new Date(); //可以当前日期 $scope.nowDate = $filter("date")($scope.getDate, &qu ...

  9. java根据日期获取周几和获取某段时间内周几的日期

    整理两个日期的方法. 根据日期获取当天是周几 /** * 根据日期获取当天是周几 * @param datetime 日期 * @return 周几 */ public static String d ...

随机推荐

  1. 无向图的 DFS 和 BFS实现 (以邻接表存储的图)

    #include <iostream> #include <queue> using namespace std; #define MaxVertexNum 10 typede ...

  2. responseHandler

    resonsehandler 接受服务端传过来的数据,然后在这个函数里处理好要显示的数据在return个table显示 <!DOCTYPE html> <html lang=&quo ...

  3. ♣eclipse护眼颜色和关键字颜色设置

    eclipse护眼颜色和字体大小设置   ♣eclipse护眼颜色和关键字颜色设置 ♣eclipse字体大小设置(包括jsp , .xml ,.java) 1.Eclipse字体大小调整: 窗口(Wi ...

  4. Splay的初步学习

    具体是啥,qwq 有时间再补吧,贴一下代码: #include<iostream> #include<cstdio> #include<cstring> #incl ...

  5. linux 硬盘分区与格式化挂载 (二)

    1. 文件系统的挂载与卸载(详见linux系统管理P406)1) 掌握挂载的定义:挂载指将一个设备(通常是存储设备)挂接到一个已存在的目录上.2) 掌握mount命令的功能:实现文件系统的挂载.3) ...

  6. Halcon 常用算子使用场合

    Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样本添加到一个高斯混合模型的训 ...

  7. Django单表操作

    一.数据库相关设置 配置ORM的loggers日志: # 配置ORM的loggers日志 LOGGING = { 'version': 1, 'disable_existing_loggers': F ...

  8. Vue proxyTable 解决开发环境的跨域问题

    在 config/index.js 配置文件中,添加 dev: { proxyTable: { '/ssp/withdraw': { target: 'http://dev.home.phiwifi. ...

  9. 函数指针的理解 from 数据结构

    今天在学习数据结构中遇到一些问题,函数的指针不知道怎么用,给自己科普一哈 1 int LocateElem_Sq(SqList L, LElemType_Sq e, Status(*Compare)( ...

  10. git 撤销更改的文件

    在没有git add之前: 1.撤销所有更改:git checkout . 2.撤销指定文件的更改:git checkout -- file.txt git add之后: git reset HEAD ...