SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd")

LocalDate expirationDate

String expirDate="0"

Date date = df.parse(expirationDate as String) // 指定日期

expirDate = addDate(date, im.expiry2y).format("yyyy-MM-dd") // 指定日期加上天数

得到一个新的日期

/**

* 效期增加天数,得到一个新的日期

* @param date

* @param day

* @return

* @throws Exception

*/

static Date addDate(Date date,long day) throws Exception {

long time = date.getTime(); // 得到指定日期的毫秒数

day = day*24*60*60*1000; // 要加上的天数转换成毫秒数

time+=day; // 相加得到新的毫秒数

return new Date(time); // 将毫秒数转换成日期

}

下面代码是给日期年数增加年的时间

//把LocalDate 转date

ZoneId zoneId = ZoneId.systemDefault()

ZonedDateTime zdt = exdm.expirationDate.atStartOfDay(zoneId)

//给年数加两年

Calendar rightNow = Calendar.getInstance()

rightNow.setTime(Date.from(zdt.toInstant()))

rightNow.add(Calendar.YEAR, 2)//给年数增加两年,得到一个新的日期

expirDate = df.format(rightNow.getTime())

SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd")

Integer daysToExpire=180

Integer warnShelfLife = 60 // 临期天数

if (isValidDate(batchPart)) {//判断时间格式是否正确

formatter.setLenient(false)

Date newDate = formatter.parse(batchPart)

formatter = new SimpleDateFormat("yyyy-MM-dd")

String ds = formatter.format(newDate)

Date d = formatter.parse(ds)

expirDate = df.format(new Date(d.getTime() + ((im.daysToExpire ?: 0) - (im.warnShelfLife ?: 0)) * 24 * 60 * 60 * 1000L)) as String

}

结果得到一个新的日期

/**

* 判断日期格式是否正确

* @param str

* @return

*/

static boolean isValidDate(String str) {

boolean convertSuccess = true

// 指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写;

SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd")

try {

// 设置lenient为false.

// 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01

format.setLenient(false)

format.parse(str)

} catch (Throwable t) {

convertSuccess = false

}

return convertSuccess

}

===========================================================以下是网上找到的方法=======================================================

package com.date.test;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class Test {

public static void main(String[] args) throws ParseException {

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); // 日期格式

Date date = dateFormat.parse("2015-07-31"); // 指定日期

Date newDate = addDate(date, 20); // 指定日期加上20天

System.out.println(dateFormat.format(date));// 输出格式化后的日期

System.out.println(dateFormat.format(newDate));

}

public static Date addDate(Date date,long day) throws ParseException {

long time = date.getTime(); // 得到指定日期的毫秒数

day = day*24*60*60*1000; // 要加上的天数转换成毫秒数

time+=day; // 相加得到新的毫秒数

return new Date(time); // 将毫秒数转换成日期

}

}

java 加日期_java 给时间增加时间得到一个新的时间(日期)相关推荐

  1. 日期格式转换,正则匹配后转换;指定时间增加天数加转格式;js时间转换格式

    指定时间增加天数加转格式,正则匹配: //申明需要的时间格式 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss& ...

  2. java加盐_Java中MD5加密加盐算法

    前俩天项目组需要做一个密码的加密加盐操作,无意中在网上看到一个对应的加密加盐算法,特意在此做一个记录 import java.security.MessageDigest; import java.u ...

  3. java加按钮_Java实战:50行代码实现QQ登录和微博登录

    作者丨我是小茗同学 整理丨Java团长 https://www.cnblogs.com/liuxianan 1. 前言 个人网站最近增加了评论功能,为了方便用户不用注册就可以评论,对接了 QQ 和微博 ...

  4. java加减_Java位运算实现加减乘除

    一.加法 a+b 举例实现:13+9=22 13+9不考虑进位结果为12 只考虑进位结果为10 和刚好是22. 13二进制为1101,9二进制为1001. 不考虑进位结果为0100.算式为a^b 只考 ...

  5. java 加日志_java中添加日志

    在简单的项目中添加日志: 首先导入2个jar包 commons-logging-1.1.1.jar log4j-1.2.15.jar 然后在项目的src目录下创建log的配置文件 log4j.prop ...

  6. 乘法口诀表java加表格_Java 面试 - 打印九九乘法口诀表

    在Java面试过程中, 面试者经常会被要求手写代码或上机操作.一般来说,手写代码或上机操作,主要还是考察面试者的分析问题和解决问题的能力.打印九九乘法口诀无疑是非常基础的,那么如何实现呢?首先我们先来 ...

  7. java arraylist插入_java ArrayList数组中如何插入一个元素

    java ArrayList数组中如何插入一个元素 比如: ArrayList myList = new ArrayList(): myList.add(0); myList.add(1); myLi ...

  8. java hive查询_java程序调用hive查询的一个异常

    最近在java程序中调用hive做查询时,碰到一个异常,被困扰了许久,经过几番调试,逐步把问题定位清楚. 在异常描述前先给出异常信息:java.sql.SQLException: Error whil ...

  9. java控制单元测试_java – 当单元测试控制器时,模拟一个Spring Validator

    在将单元测试postmortem编码到另一个项目创建的代码时,我遇到了如何使用initBinder模拟与控制器绑定的验证器的这个问题? 通常我会考虑确保我的输入是有效的,并且在验证器中进行一些额外的调 ...

最新文章

  1. 在LINUX中部署NIS服务器
  2. 零基础学oracle pdf_零基础怎么学手绘插画!
  3. 求链表倒数第k个结点
  4. 安卓qpython怎么使用_如何使用QPython开发Android应用?
  5. 2017年10月05日普及组 负进制
  6. [Flask+Vue]Books全栈应用
  7. webstorm下debug调试react js程序
  8. python为什么不会溢出_深入分析python中整型不会溢出问题
  9. linux telnet.class,Linux telnet简单实用方法
  10. 如何在JAVA编程语言程序开发中更好的利用数据库中2两张表?
  11. 比较默认对象和默认约束的异同_UE4对象类类型引用和类默认对象(Class Default Object,简称CDO)...
  12. 《推荐系统笔记(十二)》聚类生成标签以及基于标签的TopN推荐
  13. ffmpeg1.2的filter分析
  14. 基于android的希腊字母读音手机软件,希腊字母表app下载
  15. mysql 定时调用sp_使用shell脚本调用mysql数据库存储过程,并设置定时任务
  16. Redis “max number of clients reached“的分析过程
  17. NOI2021 D类打铁记
  18. 全球家务机器人发展现状及未来趋势
  19. eclipse复制工作空间配置
  20. ML-Agents学习之RollerBall项目

热门文章

  1. unity3d IGUI下载
  2. C语言有一个分数序列,求出这个数列的前20项之和
  3. Oracle数据库的应用详解
  4. 删库别急着跑路,这几步神恢复!
  5. ajax then fail done,我应该使用.done()和.fail()来获取新的jQuery AJAX代码而不是成功和错误...
  6. 年终盘点丨2017人工智能十大关键词,收购、政策、场景创新上榜
  7. Qcom_Sensor(八)--- 之 DSPS架构分析
  8. 惠尔丰VX675解密流程2019
  9. 软件问题定位的方法(一)
  10. numpy数组做 图片拼接(concatenate、vstack、hstack)