8 个答案:

答案 0 :(得分:13)

首先,您必须将String日期转换为java.util.Date,而不是必须使用java.util.Calendar来操纵日期。也可以用millis做数学,但我不推荐这个。

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

final String sdate = "2012-01-01";

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

final Date date = df.parse( sdate ); // conversion from String

final java.util.Calendar cal = GregorianCalendar.getInstance();

cal.setTime( date );

cal.add( GregorianCalendar.MONTH, 5 ); // date manipulation

System.out.println( "result: " + df.format( cal.getTime() ) ); // conversion to String

}

答案 1 :(得分:4)

避开日期数学的内置Date类。看看JodaTime,它有更好的API用于此类事情。

答案 2 :(得分:2)

Calendar cal = Calendar.getInstance();

cal.add(Calendar.MONTH, 5);

答案 3 :(得分:1)

要将日期转换为日历,请使用:

Date date = your_date_here;

Calendar cal = Calendar.getInstance();

cal.setTime(date);

然后使用日历算术函数进行加/减:

cal.add(Calendar.MONTH, 5);

答案 4 :(得分:0)

使用谷歌的GWT包中的CalenderUtils。

import com.google.gwt.user.datepicker.client.CalendarUtil;

...

//now

Date d = new Date();

// Now + 2 months

CalendarUtil.addMonthsToDate(d, 2);

答案 5 :(得分:0)

另一个选项是来自第三方Apache Commons库集合的DateUtils类。例如:

Date d = DateUtils.parseDate("2012-01-01", "yyyy-MM-dd");

Date d2 = DateUtils.addMonths(d, 5);

System.out.println("Old date + 5 months = " + d2);

答案 6 :(得分:0)

或者,将日期转换为milis。算一算,然后将毫秒转换回日期。

答案 7 :(得分:-1)

java中日期做减法_Java中日期的加法和减法相关推荐

  1. java gui怎么做游戏_Java中关于GUI实现贪吃蛇游戏的简单方法

    这篇文章主要介绍了Java GUI编程之贪吃蛇游戏简单实现方法,详细分析了贪吃蛇游戏的具体实现步骤与相关注意事项,并附带demo源码供读者下载参考,需要的朋友可以参考下 本文实例讲述了Java GUI ...

  2. java线程能做什么_java中的多线程能做什么 ?基本作用能说下吗?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 给你写个最简单的 多线程分同步和异步的,我已经给你写上了synchronized ,但注释了,你可以顺便看看加上它和去掉他的区别! public clas ...

  3. java怎样将日期本土化_Java中的日期操作

    在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...

  4. java中定义一个时间_Java中的日期和时间

    根据个人目前正在编写的<Java核心编程-基础篇>的规划,这部分属于第15章内容,这里沿用了书中的章节编号.另外,因为原文篇幅太长,这里适当做了删减. 15.1.概述 在 Java 8 之 ...

  5. java怎么无参构造方法_Java中如何在无参构造方法中调用有参构造?

    展开全部 一般正常的都是参数多的调用参数少的.有参数的调用无参数的居e68a843231313335323631343130323136353331333365643537多. 当然你要无参调用的参的 ...

  6. java 设置日期的格式_java设置日期格式

    { System.out.println("格式正确"); } else { System.out.println("格式错误"); } } } 一.简单的日期 ...

  7. 随机数在java 自旋锁的运用_Java 中自旋锁的实现

    Java中初始是使用mutex互斥锁,因为互斥锁是会线程等待挂起,而对获取锁后的操作时间比较短暂的应用场景来说,这样的锁会让竞争锁的线程不停的park,unpark 的操作,这样的系统的调用性能是非常 ...

  8. java 基本类型的引用_Java中的基本数据类型与引用数据类型

    一.基本数据类型 byte.short.int.long(整数类型) float.double(浮点数类型) char(字符型) boolean(布尔类型 ) Java数据大多数存放在堆栈中.栈区:存 ...

  9. java原始类型和引用类型_Java中的8种原始类型

    java原始类型和引用类型 几年前,当我开始编辑Java Basics系列时,我认为将一些非常详细的信息拉到自己的帖子中是很有意义的. 这样,初学者的内容就更容易消化了. 首先,我将介绍有关Java的 ...

  10. java中缓冲区和缓存_Java中的Google协议缓冲区

    java中缓冲区和缓存 总览 协议缓冲区是一种用于结构化数据的开源编码机制. 它是由Google开发的,旨在实现语言/平台中立且可扩展. 在本文中,我的目的是介绍Java平台上下文中协议缓冲区的基本用 ...

最新文章

  1. flash_erase and flash_eraseall
  2. 自学it18大数据笔记-第三阶段Scala-day06——会持续更新……
  3. 错误 1093 You can't specify target table 'table name' for update in FROM clause
  4. Hybris Commerce的 Master Tenant和Netweaver的System Client
  5. Linux SSH Publickey登录
  6. AngularJS之高级Route【三】(八)
  7. Vue 开发环境显示log信息
  8. 工作方式~使用寄存的实现方式~
  9. HEXO+Github,搭建属于自己的博客
  10. 2nd scrum站立会议
  11. JavaScript:监听网站离开更改title
  12. asp.net mvc 2.0 TryValidateModel(Object)方法
  13. 10分钟入门Shell脚本编程
  14. 论计算机维护论文,论计算机装与维护毕业论文.docx
  15. AutoIt-v3的安装,和robotframework-autoitlibrary的导入
  16. 史沐凡的python笔记之时间转换datetime模块的练习
  17. SpringCloud的@Value注解及GitLab配置使用
  18. Android 开发艺术探索——第十章 Android的消息机制
  19. STM32Cube工程转为Keil工程的方法介绍
  20. PAT (Basic Level) 1027 打印沙漏 (20 point(s))

热门文章

  1. yum 安装、 rpm安装、 源码编译安装
  2. ubuntu 最新提权漏洞_Ubuntu和Debian最新的KDE安全漏洞,附-修复指南
  3. css的id和class场景,CSS Id 和 Class选择器
  4. c 创建mysql实体模型_ADO.Net实体数据模型添加DB-First/Code First报错
  5. python时间格式转换format_【参考】Python日期时间转换与格式化
  6. mysql没有开启binlog能恢复数据吗_【数据库】一个 rm -rf 把公司整个数据库删没了
  7. php 图片裁剪保存,PHP图片裁剪与缩放示例(无损裁剪图片)
  8. 关于linux内核版本说法,关于Linux内核版本的说法,以下错误的是( )
  9. form请求导出表格_程序员:java导出Excel,附带依赖、后端代码和前端JS
  10. MySQL(20)-----数据库设计的常规步骤