java 根据系统日期获取前一天、后一天时间(根据初始日期推算出期望(向前/向后)日期)
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 根据系统日期获取前一天、后一天时间(根据初始日期推算出期望(向前/向后)日期)的更多相关文章
- java日期获取前一天和后一天
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import j ...
- Java中获取前一天和后一天时间
今天在开发项目的时候遇到一个问题就是怎么获取当前时间的前一天和后一天,这个实现的逻辑并不复杂,自己要写的话的也不是难事,但是貌似感觉没必要自己写这样的方法,想想Java中的Calendar类应该有这样 ...
- java获得指定日期的前一天,后一天的代码
/** * 获得指定日期的前一天 * @param specifiedDay * @return * @throws Exception */ public static String getSpec ...
- Java日期获取需求大全
刚进公司,作为熟悉技术,为公司做了一个小的点餐系统的网站,其中大量用到了时间日期作为唯一标示或是显示设置.特总结了一下和大家分享. package com.lucis.ordering.Utils; ...
- php获取指定日期的前一天,前一月,前一年日期
## php获取指定日期的前一天,前一月,前一年日期 前一天的日期为: date("Y-m-d",strtotime("-1 days",strtotime ...
- JavaScript如何实现日期的前一天后一天转变
1.生成时间 var data =new Date(); 2.获得时间戳 什么是时间戳? 时间戳是指格林威治时间自1970年1月1日(00:00:00 GTM)至当前时间的总秒数.它也被称为U ...
- java获取前一天时间SimpleDateFormat,java判断某个时间段
java获取前一天时间SimpleDateFormat SimpleDateFormat predf = new SimpleDateFormat("yyyy-MM-dd"); D ...
- angularjs1.X获取前一天日期
$scope.getDate = new Date(); //可以当前日期 $scope.nowDate = $filter("date")($scope.getDate, &qu ...
- java根据日期获取周几和获取某段时间内周几的日期
整理两个日期的方法. 根据日期获取当天是周几 /** * 根据日期获取当天是周几 * @param datetime 日期 * @return 周几 */ public static String d ...
随机推荐
- 011 SpringSecurity的基本原理
一:securuty默认情况 1.默认的配置 在引用security依赖以后,会有一个配置 security.basic.enabled=true 2.启动 用户名:user 密码:在控制台上查看 3 ...
- FastAdmin 基本知识流程一栏
fastadmin进阶 安装:出现登陆页无法显示:可能是php的gd2扩展未开启 FastAdmin 在 Nginx 中的配置 用的是AdminLTE后台模板require.js.less.Bow ...
- 【python】数据库
No1: [SQLite] 插入 # 导入SQLite驱动: >>> import sqlite3 # 连接到SQLite数据库 # 数据库文件是test.db # 如果文件不存在, ...
- gitalk报错问题
今天为了优化个人博客,将博客同时部署到Github和Coding,之后虽然博客访问速度相比以前有很大的提升,但是不知道gitalk评论会莫名出现问题 问题 点击使用GitHub登陆会跳转到个人博客主页 ...
- 浅析Linux服务器集群系统技术
浅析Linux服务器集群系统技术 目录 前言 常用的服务器集群 集群系统的优势 LVS集群的通用体系结构 为什么使用层次的体系结构 为什么是共享存储 可伸缩Web服务 前言 总结两篇技术文章,努力学习 ...
- IIS7.0提示“请求筛选模块被配置为拒绝包含双重转义序列的请求”处理办法
请求筛选模块被配置为拒绝包含双重转义序列的请求.HTTP 错误 404.11 - Not Found 解决办法: 1.单击 开始 . 在 开始搜索 框中, 键入 Notepad. 右击 记事本 , 然 ...
- IDEA安装使用Lombok插件
项目中经常使用bean,entity等类,绝大部分数据类类中都需要get.set.toString.equals和hashCode方法,虽然IDEA开发环境下都有自动生成的快捷方式,但自动生成这些代码 ...
- JN5139 zigbee 资料
JN5139模块是一系列可以使使用者在最短的时间内在最低的成本下实现IEEE802.15.4或ZigBee兼容系统的表贴模块.此款模块减少了用户对于RF板设计和测试框架的昂贵漫长的开发时间.这些模块利 ...
- System.out.println()和System.err.println()
在一次笔试中遇到了一个System.err.println()的输出,之前没有见过,回来查一查,自己还是见识太短,来补充一下. 首先看一看jdk中 来一个简单的实验 第一次显示 第二次显示 1. 发现 ...
- 2016-2017 National Taiwan University World Final Team Selection Contest
A. Hacker Cups and Balls 二分答案,将$\geq mid$的数看成$1$,$<mid$的数看成$0$,用线段树进行区间排序检查即可.时间复杂度$O(n\log^2n)$. ...