`

如何实现String型时间加一天和减一天

    博客分类:
  • java
阅读更多

增加一天和减少一天分别采用了两种方法,喜欢那种用哪种,代码如下:

 

import java.text.DateFormat;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

 

public class TestTime {

public static void main(String[] args) {

String d = "2004-1-1";

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

/**

* 加一天

*/

try {

Date dd = df.parse(d);

Calendar calendar = Calendar.getInstance();

calendar.setTime(dd);

calendar.add(Calendar.DAY_OF_MONTH, 1);//加一天

System.out.println("增加一天之后:" + df.format(calendar.getTime()));

} catch (ParseException e) {

e.printStackTrace();

}

 

/**

* 减一天

*/

try {

long dif = df.parse(d).getTime()-86400*1000;//减一天

       Date date=new Date(); 

       date.setTime(dif);

       System.out.println("减少一天之后:" + df.format(date));

} catch (ParseException e) {

e.printStackTrace();

}

            

}

}

 

输出地结果:

增加一天之后:2004-01-02

减少一天之后:2003-12-31

 

注:

有的人说增加一天和减少一天可以用一个方法就实现了:

calendar.roll(Calendar.DAY_OF_MONTH, 1);//加一天

calendar.roll(Calendar.DAY_OF_MONTH, -1);//减一天

一定不要用这个方法,经试验加一天的没问题,减一天的会出现一下问题:当时间为“2013-2-1”时,calendar.roll(Calendar.DAY_OF_MONTH, -1)得到结果的是“2013-2-28”,即这个月的月末一天,换句话说他只能够更改“yyyy-MM-dd”中的“dd”。api的解释是:向指定日历字段添加指定(有符号的)时间量,不更改更大的字段。负的时间量意味着向下滚动。

分享到:
评论

相关推荐

    扩展String功能方法

    扩展String功能方法:一直好忙,没有时间写属于自己的东西,但是看着一天天不更新心情也不是个滋味,只有从网上收罗一些比较好的东东贴上。

    c++string类的实现

    2)string类经常用到find find_first_of find_first_not_of find_last_of find_last_not_of substr replace等,以及联合使用来达到java中的split和trim 3) 有些函数返回的是MyString& 、Char& 等(引用),MyString、...

    stringstream操纵string的方法总结

    直到某一天,我做了一个处理绝对路径的题目。 首先,我要把‘/’作为分隔符,把输入字符串split一下。下面是我的代码:  string inputString(/home/fun/./../code/); stringstream ss(inputString); string tmp; ...

    C# 得到某一天的起始和截止时间的代码

    private static void 某天的起始截止时间(DateTime 哪一天, out DateTime 起始时间, out DateTime 截止时间) { var 日期 = 哪一天.Date; 起始时间=Convert.ToDateTime(DateTime.Now.ToString(“yyyy-MM-dd 00:00:00...

    string、long、date的相互转换,获取,传入日期是周几、传入日期最后一天、传入日期当月所有日期、2日期内的所有日期

    string、long、date的相互转换,获取,传入日期是周几、传入日期最后一天、传入日期当月所有日期、2日期内的所有日期

    DateUtil.java 时间日期处理工具类

    2.比较传入时间与当前时间前一天的大小,传入时间在后返回true,传入时间在前返回false isWithinOneDay(String dateStr); 3.String转Date stringToDate(String dateStr, String format); 4.Date转String date...

    Android时间相关的工具类

    isSameDay : 判断是否同一天 isLeapYear : 判断是否闰年 getWeek, getWeekIndex : 获取星期 getWeekOfMonth : 获取月份中的第几周 getWeekOfYear : 获取年份中的第几周 getChineseZodiac : 获取生肖 getZodiac : ...

    Java - DateUtil 日期时间转换工具类

    内容概要:日期时间转换工具类,包括基本的Date类型,String类型,TimeStamp类型,LocalDateTime类型,LocalDate类型之间的互相转换,还提供了许多与时间获取,时间计算有关的方法,如:获取指定日期几天后的日期;...

    Java 日期格式化 工具类

    Date和String的相互转换 得到指定日期所在周的星期几的日期 获取指定年的第几周的最后一天日期 获取指定年的第几周的第一天日期 获取指定日期为当前年的第几周 获取指定日期中的月份 获得当前月的第一天 获得当前月...

    超全面javaweb教程28天-day3 01 js的string对象一

    超全面javaweb教程28天-day3_01_js的string对象一

    C#企业培训第三课源码(练习20题)

    猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃前一天剩下的一半零一个。到第10天早上再想吃时,见只剩一个桃子了。求第一天共...

    java 时区转换工具包

    3. 获取某一天的零点 public static ZonedDateTime getTodayZonedDayBegin(int offset) 4. 指定某一天的零点 public static ZonedDateTime createDayBegin(int year,int month,int day,int offset) 5. 从时间戳转换 ...

    java时间处理工具类--CalendarUtil(java源码)

    * 获得所在星期的第一天 */ public static Date getFirstDateByWeek(Date date) { Calendar now = Calendar.getInstance(); now.setTime(date); int today = now.get(Calendar.DAY_OF_WEEK); int ...

    java时间格式大全(算法源码)

    //减去一天,变为当月最后一天 str=sdf.format(lastDate.getTime()); return str; } /** * 得到现在小时 */ public static String getHour() { Date currentTime = new Date(); SimpleDateFormat ...

    日期操作工具类

    * 返回指定月份的最后一天 * @param year * @param month * @return */ public static int getLastDayOfMonth(int year, int month){ } /** * 计算两个日期间的秒数 * @param beginDate * @...

    LocalDateTimeUtil.java

    System.out.println("当前时间的前一天为:"+LocalDateTimeUtil.obtainDay(1,1)); System.out.println("当前时间的后一天为:"+LocalDateTimeUtil.obtainDay(2,1)); System.out.println("当前时间的前一小时为:...

    java_时间日期管理的几乎所有标准代码_时区_时间日期格式的转换加减和比较_判断特殊日期

    使指定日期向前走一天,变成“明天”的日期 使日期倒一天 判断平年闰年 计算某月的天数 获取当天凌晨的秒数 将日期格式化成友好的字符串:几分钟前、几小时前、几天前、几月前、几年前、刚刚 将日期以yyyy-MM-dd HH...

    社会上常用的Java试题库

    一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出... 如何获取某个日期是当月的最后一天 如何格式化日期

    String s = new String(” a “) 到底产生几个对象?

    老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”...

    DateUtil.java

    public static String getYear() { return sdfYear.format(new Date()); } /** * 获取YYYY-MM-DD格式 * @return */ public static String getDay() { return sdfDay.format(new Date()); } /** * ...

Global site tag (gtag.js) - Google Analytics