JAVA获取指定日期

本文总结了在Java项目中获取当前日期之前或之后的月份、天数、小时数的方法,包括获取上月的最后一天、当日日期、本周一、本周日以及本月日期等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java项目中经常需要用到到当前日期的前若干天、后若干天、前几小时、后几小时的时间,现总结如下

获取前/后(月、天、小时)时间

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

/**
	 * 
	 * 给一个日期获得其他的日期
	 *
	 * @param farmat
	 *            返回日期格式
	 *
	 * @param date
	 *            传入的初始日期
	 *
	 * @param num
	 *            想要得到的哪天(正数:代表后num天,负数:代表前num天)
	 * 
	 * @return 格式字符串的日期
	 */
	public static String getAnotherDay(String farmat, String date, Integer num) throws ParseException {

		SimpleDateFormat sdf = new SimpleDateFormat(farmat);
		Date date_ = sdf.parse(date);// 将字符串转化为时间格式
		Calendar calendar = Calendar.getInstance(); // 得到日历
		calendar.setTime(date_);// 把开始日期赋给日历
		calendar.add(Calendar.DAY_OF_MONTH, num); // 设置为num天
		//calendar.add(Calendar.HOUR_OF_DAY, num); // 设置为num小时
		//calendar.add(Calendar.MONTH, num); // 设置为num月
		Date resultDate = calendar.getTime(); // 得到时间
		return sdf.format(resultDate);
	}

另外总结其他几种获取日期方式:

获取上月:

Calendar c = Calendar.getInstance();
  c.add(Calendar.MONTH, -1);
  SimpleDateFormat format =  new SimpleDateFormat("yyyy-MM");
  String time = format.format(c.getTime());

得到一个月最后一天日期(31/30/29/28)

 int MaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH);
  //按你的要求设置时间
  c.set( c.get(Calendar.YEAR), c.get(Calendar.MONTH), MaxDay, 23, 59, 59);
  //按格式输出
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");
  String gtime = sdf.format(c.getTime()); //上月最后一天

获取本日日期

/**
  * 获取本日日期
  * @return
  */
 public static String getToDay(){
  Calendar c = Calendar.getInstance();
  String time = getTime(c);
  System.out.println(time);
  return time;
 }

获取本周一日期

 /**
  * 获取本周一日期
  * @return
  */
 public static String getWeekA(){
  Calendar cal =Calendar.getInstance();
  cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
//  System.out.println(cal.getTime());
  String time = getTime(cal)+" 00:00:00";
  System.out.println(time);
  return time;
 }

获取本周日日期

 /**
  * 获取本周日日期
  * @return
  */
 public static String getWeekB(){
  Calendar cal =Calendar.getInstance();
//  System.out.println(cal.getTime());
  //这种输出的是上个星期周日的日期,因为老外那边把周日当成第一天
  cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
//  System.out.println(cal.getTime());
  
  //增加一个星期,才是我们中国人理解的本周日的日期
  cal.add(Calendar.WEEK_OF_YEAR, 1);
//  System.out.println(cal.getTime()); //本周日
  String time = getTime(cal)+" 23:59:59";
  System.out.println(time);
  return time;
 }

获取本月日期

 /**
  * 获取本月日期
  * @return
  */
 public static String getMonth(){
  Calendar c = Calendar.getInstance();
  SimpleDateFormat format =  new SimpleDateFormat("yyyy-MM");
  String time = format.format(c.getTime());
  System.out.println(time);
  return time;
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值