Java获取的一天、本星期、这个月、本季度、一年等 开始和结束时间

Java获取的一天、本星期、这个月、本季度、一年等 开始和结束时间

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

1.代码


package com.zhaochao.utils;

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

public class DataUill {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("当天24点时间:" + getTimesnight().toLocaleString());
		System.out.println("当前时间:" + new Date().toLocaleString());
		System.out.println("当天0点时间:" + getTimesmorning().toLocaleString());
		System.out.println("昨天0点时间:" + getYesterdaymorning().toLocaleString());
		System.out.println("近7天时间:" + getWeekFromNow().toLocaleString());
		System.out.println("本周周一0点时间:" + getTimesWeekmorning().toLocaleString());
		System.out.println("本周周日24点时间:" + getTimesWeeknight().toLocaleString());
		System.out.println("本月初0点时间:" + getTimesMonthmorning().toLocaleString());
		System.out.println("本月未24点时间:" + getTimesMonthnight().toLocaleString());
		System.out.println("上月初0点时间:" + getLastMonthStartMorning().toLocaleString());
		System.out.println("本季度開始点时间:" + getCurrentQuarterStartTime().toLocaleString());
		System.out.println("本季度结束点时间:" + getCurrentQuarterEndTime().toLocaleString());
		System.out.println("本年開始点时间:" + getCurrentYearStartTime().toLocaleString());
		System.out.println("本年结束点时间:" + getCurrentYearEndTime().toLocaleString());
		System.out.println("上年開始点时间:" + getLastYearStartTime().toLocaleString());
	}

	// 获得当天0点时间
	public static Date getTimesmorning() {
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.MILLISECOND, 0);
		return cal.getTime();


	}
	// 获得昨天0点时间
	public static Date getYesterdaymorning() {
		Calendar cal = Calendar.getInstance();
		cal.setTimeInMillis(getTimesmorning().getTime()-3600*24*1000);
		return cal.getTime();
	}
	// 获得当天近7天时间
	public static Date getWeekFromNow() {
		Calendar cal = Calendar.getInstance();
		cal.setTimeInMillis( getTimesmorning().getTime()-3600*24*1000*7);
		return cal.getTime();
	}

	// 获得当天24点时间
	public static Date getTimesnight() {
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.HOUR_OF_DAY, 24);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.MILLISECOND, 0);
		return cal.getTime();
	}

	// 获得本周一0点时间
	public static Date getTimesWeekmorning() {
		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);
		return cal.getTime();
	}

	// 获得本周日24点时间
	public static Date getTimesWeeknight() {
		Calendar cal = Calendar.getInstance();
		cal.setTime(getTimesWeekmorning());
		cal.add(Calendar.DAY_OF_WEEK, 7);
		return cal.getTime();
	}

	// 获得本月第一天0点时间
	public static Date getTimesMonthmorning() {
		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));
		return cal.getTime();
	}

	// 获得本月最后一天24点时间
	public static Date getTimesMonthnight() {
		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);
		return cal.getTime();
	}

	public static Date getLastMonthStartMorning() {
		Calendar cal = Calendar.getInstance();
		cal.setTime(getTimesMonthmorning());
		cal.add(Calendar.MONTH, -1);
		return cal.getTime();
	}

	public static Date getCurrentQuarterStartTime() {
		Calendar c = Calendar.getInstance();
		int currentMonth = c.get(Calendar.MONTH) + 1;
		SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
		Date now = null;
		try {
			if (currentMonth >= 1 && currentMonth <= 3)
				c.set(Calendar.MONTH, 0);
			else if (currentMonth >= 4 && currentMonth <= 6)
				c.set(Calendar.MONTH, 3);
			else if (currentMonth >= 7 && currentMonth <= 9)
				c.set(Calendar.MONTH, 4);
			else if (currentMonth >= 10 && currentMonth <= 12)
				c.set(Calendar.MONTH, 9);
			c.set(Calendar.DATE, 1);
			now = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return now;
	}

	/**
	 * 当前季度的结束时间。即2012-03-31 23:59:59
	 *
	 * @return
	 */
	public static Date getCurrentQuarterEndTime() {
		Calendar cal = Calendar.getInstance();
		cal.setTime(getCurrentQuarterStartTime());
		cal.add(Calendar.MONTH, 3);
		return cal.getTime();
	}


	public static Date getCurrentYearStartTime() {
		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.YEAR));
		return cal.getTime();
	}

	public static Date getCurrentYearEndTime() {
		Calendar cal = Calendar.getInstance();
		cal.setTime(getCurrentYearStartTime());
		cal.add(Calendar.YEAR, 1);
		return cal.getTime();
	}

	public static Date getLastYearStartTime() {
		Calendar cal = Calendar.getInstance();
		cal.setTime(getCurrentYearStartTime());
		cal.add(Calendar.YEAR, -1);
		return cal.getTime();
	}

}

2.结果

当天24点时间:2015-1-18 0:00:00
当前时间:2015-1-17 10:50:57
当天0点时间:2015-1-17 0:00:00
昨天0点时间:2015-1-16 0:00:00
近7天时间:2015-1-10 0:00:00
本周周一0点时间:2015-1-12 0:00:00
本周周日24点时间:2015-1-19 0:00:00
本月初0点时间:2015-1-1 0:00:00
本月未24点时间:2015-2-1 0:00:00
上月初0点时间:2014-12-1 0:00:00
本季度開始点时间:2015-1-1 0:00:00
本季度结束点时间:2015-4-1 0:00:00
本年開始点时间:2015-1-1 0:00:00
本年结束点时间:2016-1-1 0:00:00
上年開始点时间:2014-1-1 0:00:00


版权声明:本文博客原创文章。博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117655.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月2日 下午12:00
下一篇 2022年1月2日 下午12:00


相关推荐

  • 算法帝国:华尔街交易怪兽的核武器缔造史

    算法帝国:华尔街交易怪兽的核武器缔造史这是一段通俗的读物,更是一段算法交易的历史钩沉,华尔街的每个角落逐渐被算法所侵蚀,思考者,依然还是拖着额头,但却不得不接受未来的现实!1980年华尔街的黑客生涯:天时地利20世纪70年代末期,算法开始进入人们的工作,这一趋势席卷了世界各地的金融市场,标志着华尔街黑客时代已然来临。华尔街逐渐吸引了美国越来越多杰出的数学家和科学家投身于编写交易算法的工作。在布莱克·斯科尔斯统治市场之前,已经有少数工程师和科学家进入曼哈顿下城市场了,但他们大都是外来移民。麻省理工、哈佛和此类高等学府的工程楼和科学.

    2022年7月11日
    22
  • BufferedWriter写int型数据

    BufferedWriter写int型数据在做项目的过程中遇到用BufferedWriter.writer(…)写文件的,但是在写入int型数据时是乱码。在翻阅了API后发现,BufferedWriter.writer(intc)方法写的不是一个int型数据,而是一个character型数据:因此,在用BufferedWriter.writer写数据的时候,如果要写int型数据,可以先把它转成String型的数据,这样就

    2022年6月10日
    50
  • 常见的js算法_javascript数据结构与算法

    常见的js算法_javascript数据结构与算法常见的几种js算法(一)快速排序算法1.1:先从数列中取出一个数作为“基准”。1.2:分区过程:将比这个“基准”大的数全放到“基准”的右边,小于或等于“基准”的数全放到“基准”的左边。1.3:再对左右区间重复第二步,直到各区间只有一个数。代码实现:varquickSort=function(arr){if(arr.length<=1){retur…

    2022年10月4日
    6
  • 线程的join方法

    线程的join方法join()方法的作用就是让主线程等待子线程执行结束之后再运行主线程。下面示例中t2为主线程,需要等待子线程t1执行完成再执行使用场景,线程2依赖于线程1执行的返回结果在线程2中调用线程1的join方法,即把cpu资源让给线程1publicstaticvoidmain(String[]args)throwsException{Threadt1=newThread(()->{try{T.

    2022年5月11日
    54
  • Python静态代码检查工具Flake8

    Python静态代码检查工具Flake8flake8

    2025年11月7日
    5
  • 51单片机毕业设计题目_单片机毕业设计怎么做

    51单片机毕业设计题目_单片机毕业设计怎么做以下是学长亲手整理的C51单片机相关的毕业设计选题,都是经过学长精心审核的题目,适合作为毕设,难度不高,工作量达标,对毕设有任何疑问都可以问学长哦!相对容易工作量达标题目新颖,含创新点httpshttpshttpshttpshttpshttps。……

    2022年10月3日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号