欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java日期加减

程序员文章站 2022-06-26 08:01:13
...

用到的包:

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

1、获取当前系统时间日期减1

Calendar date = Calendar.getInstance();
date.setTime(new Date());
date.set(Calendar.DATE, date.get(Calendar.DATE) - 1);

此时得到的date对象进行输出,结果为

java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2018,MONTH=7,WEEK_OF_YEAR=35,WEEK_OF_MONTH=5,DAY_OF_MONTH=27,DAY_OF_YEAR=240,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=2,HOUR_OF_DAY=14,MINUTE=10,SECOND=33,MILLISECOND=108,ZONE_OFFSET=28800000,DST_OFFSET=0]

里面的内容是非常多的,只需要时间即可

System.out.println(date.getTime());
// Mon Aug 27 14:10:33 CST 2018

还需要修改输出的格式,

// 按 2018-01-01 格式
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
// 按 2018-01-01 00:00:00 格式
SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd mm:HH:ss");

// 将时间转为需要的字符串
String timeStr1 = dateFormat.format(date.getTime());
String timeStr2 = dateFormat.format(date.getTime());

System.out.println(timeStr1);
System.out.println(timeStr2);


// 输出为
//2018-08-27
//2018-08-27 17:14:49


2、输入时间字符串转时间在减1

如输入的时间为字符串形式的 “2018-01-01 00:00:00”,先转为Date类型,然后和处理获取的系统时间一样。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd mm:HH:ss");
try {
	Date date = dateFormat.parse("2018-01-01 00:00:00");
} catch (ParseException e) {
	e.printStackTrace();
}

Calendar date = Calendar.getInstance();
date.setTime(new Date());
date.set(Calendar.DATE, date.get(Calendar.DATE) - 1);
String timeStr = dateFormat.format(date.getTime());
System.out.println(timeStr);