java 获取指定时间点(定时)

本文详细介绍了如何使用 Java 的 Calendar 类来获取特定时间点,包括当天的开始和结束时间、本周第一天及本月第一天和最后一天的具体时刻。通过实例演示了如何设置 Calendar 的各个字段来精确控制时间,并使用 SimpleDateFormat 对时间进行格式化。

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

使用Calendar.getInstance()不仅能获取当前的时间,还能指定需要获取的时间点,在项目应用中达到

定时的作用,下面是常用的一些指定时间点使用:

public class Test1 {
    public static void main(String[]args){
        System.out.println("时间为:\n"+getDate1()+"\n"+getDate2()+"\n"+getDate3()+"\n"+getDate4()+"\n"+getDate5());
    }
	
/*	Calendar.HOUR_OF_DAY 	24小时制
	Calendar.HOUR 	12小时制*/
	
	//获取当天0点时间
	public static String getDate1(){
		 Calendar cal = Calendar.getInstance();
		 cal.set(Calendar.HOUR_OF_DAY, 0);//控制时
		 cal.set(Calendar.MINUTE, 0);//控制分
		 cal.set(Calendar.SECOND, 0);//控制秒
		 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		 return sdf.format(cal.getTime());
	}
	
	//获取当天12点时间
	public static String getDate2(){
		 Calendar cal = Calendar.getInstance();
		 cal.set(Calendar.HOUR_OF_DAY, 12);
		 cal.set(Calendar.MINUTE, 0);
		 cal.set(Calendar.SECOND, 0);
		 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		 return sdf.format(cal.getTime());
	}	
	
	//获取本周一0点时间
	public static String getDate3(){
		 Calendar cal = Calendar.getInstance();
		 cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0,0);
		 cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
		 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		 return sdf.format(cal.getTime());
	}	
	
	//获取本月第一天0点时间
	public static String getDate4(){
		 Calendar cal = Calendar.getInstance();
		 cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0,0);
		 cal.set(Calendar.DAY_OF_MONTH,cal.getActualMinimum(Calendar.DAY_OF_MONTH));
		 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		 return sdf.format(cal.getTime());
	}
	
         //获得本月最后一天24点时间
	public static String getDate5(){
		 Calendar cal = Calendar.getInstance();
		 cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0,0);
		 cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH));
		 cal.set(Calendar.HOUR_OF_DAY, 24);
		 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		 return sdf.format(cal.getTime());
	}		
 
}

控制台输出如下
在这里插入图片描述
转自: https://blog.youkuaiyun.com/alan_liuyue/article/details/71191037

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值