`

日期处理DateUtils

    博客分类:
  • J2EE
 
阅读更多

 

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class DateUtils {
	/**
	 * 获取当前时间
	 * 
	 * @param date
	 * @return
	 */
	public static Date getCurrentDate() {
		return new Date(System.currentTimeMillis());
	}

	/**
	 * 将时间置为23时59分钟59秒
	 * 
	 * @param date
	 * @return
	 */
	public static Date setFullPassDay(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.HOUR_OF_DAY, 23);
		calendar.set(Calendar.MINUTE, 59);
		calendar.set(Calendar.SECOND, 59);
		return calendar.getTime();
	}

	/**
	 * 将时间后退2小时
	 * 
	 * @param date
	 * @return
	 */
	public static Date getFallBack2Hour(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);

		calendar.set(Calendar.HOUR_OF_DAY,
				calendar.get(Calendar.HOUR_OF_DAY) - 2);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		calendar.set(Calendar.MILLISECOND, 0);
		return calendar.getTime();
	}

	/**
	 * 将时间精确到小时
	 * 
	 * @param date
	 * @return
	 */
	public static Date getTimeHour(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		calendar.set(Calendar.MILLISECOND, 0);
		return calendar.getTime();
	}

	/**
	 * 获取两个时间间隔的天数
	 * 
	 * @param date
	 * @return
	 */
	public static long getDiffDays(Date startDate, Date endDate) {
		long difftime = endDate.getTime() - startDate.getTime();
		return difftime / (24L * 60L * 60L * 1000L);
	}
	

	/**
	 * 根据日期获取当天起始时间
	 * 
	 * 
	 * @param date
	 * @return
	 */
	public static Date getStartDateOfCurrentDay(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		calendar.set(Calendar.MILLISECOND, 0);
		return calendar.getTime();
	}

	public static Date getStartYesterday(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.add(Calendar.DAY_OF_MONTH, -1);
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		calendar.set(Calendar.MILLISECOND, 0);
		return calendar.getTime();
	}

	/**
	 * 根据日期获取下一天起始时间
	 * 
	 * 
	 * @param date
	 * @return
	 */
	public static Date getStartDateOfNextDay(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.add(Calendar.DAY_OF_MONTH, 1);
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		calendar.set(Calendar.MILLISECOND, 0);
		return calendar.getTime();
	}

	/**
	 * 根据日期当前日期顺延一周后的起始时间
	 * 
	 * 
	 * @param date
	 * @return
	 */
	public static Date getStartDateOfNextSevenDay(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.add(Calendar.DAY_OF_MONTH, 7);
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		calendar.set(Calendar.MILLISECOND, 0);
		return calendar.getTime();
	}

	/**
	 * 根据日期当前日期顺延一周后的起始时间
	 * 
	 * 
	 * @param date
	 * @return
	 */
	public static Date getStartDateOfMonth(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.DAY_OF_MONTH, 1);
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		calendar.set(Calendar.MILLISECOND, 0);
		return calendar.getTime();
	}

	/**
	 * 根据日期当前日期顺延一月后的起始时间
	 * 
	 * 
	 * @param date
	 * @return
	 */
	public static Date getStartDateOfNextMonth(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.add(Calendar.MONTH, 1);
		calendar.set(Calendar.DAY_OF_MONTH, 1);
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		calendar.set(Calendar.MILLISECOND, 0);
		return calendar.getTime();
	}

	/*
	 * 封装一天只能的时间区域
	 */
	public static List<Date> getStaticByDateDateArea(Date date) {
		List<Date> dates = new ArrayList<Date>();
		Date startdate = getStartDateOfCurrentDay(date);
		Date nextday = getStartDateOfNextDay(date);
		int step = 2;
		dates.add(startdate);
		for (int i = 1; i < 12; i++) {
			Calendar calendar = Calendar.getInstance();
			calendar.setTime(startdate);
			calendar.add(Calendar.HOUR_OF_DAY, i * step);
			dates.add(calendar.getTime());
		}
		dates.add(nextday);
		return dates;
	}

	/*
	 * 封装一周之内时间区域
	 */
	public static List<Date> getStaticByWeekDateArea(Date date) {
		List<Date> dates = new ArrayList<Date>();
		Date startdate = getStartDateOfCurrentDay(date);
		Date nextday = getStartDateOfNextSevenDay(date);
		dates.add(startdate);
		for (int i = 1; i < 7; i++) {
			Calendar calendar = Calendar.getInstance();
			calendar.setTime(startdate);
			calendar.add(Calendar.DAY_OF_MONTH, i);
			dates.add(calendar.getTime());
		}
		dates.add(nextday);
		return dates;
	}

	/*
	 * 封装一周之内时间区域List<String>
	 */
	public static List<String> getStaticByWeekLabel(Date date) {
		SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd");
		List<String> dates = new ArrayList<String>();
		Date startdate = getStartDateOfCurrentDay(date);
		Date nextday = getStartDateOfNextSevenDay(date);
		dates.add(dateFormat.format(startdate));
		for (int i = 1; i < 7; i++) {
			Calendar calendar = Calendar.getInstance();
			calendar.setTime(startdate);
			calendar.add(Calendar.DAY_OF_MONTH, i);
			dates.add(dateFormat.format(calendar.getTime()));
		}
		return dates;
	}

	/*
	 * 封装一月之内时间区域
	 */
	public static List<Date> getStaticByMonthDateArea(Date date) {
		List<Date> dates = new ArrayList<Date>();
		Date startdate = getStartDateOfMonth(date);
		Date nextday = getStartDateOfNextMonth(date);
		long daydiff = getDiffDays(startdate, nextday);
		dates.add(startdate);
		for (int i = 1; i < daydiff; i++) {
			Calendar calendar = Calendar.getInstance();
			calendar.setTime(startdate);
			calendar.add(Calendar.DAY_OF_MONTH, i);
			dates.add(calendar.getTime());
		}
		dates.add(nextday);
		return dates;
	}
	
	/*
	 *封装一点时间之内的时间区域(天) 
	 */
	public static List<Date> getStaticBySE(Date startDate,Date endDate)
	{
		List<Date> dates = new ArrayList<Date>();
		
		long daydiff = getDiffDays(startDate, endDate);
		dates.add(startDate);
		for (int i = 1; i < daydiff; i++) {
			Calendar calendar = Calendar.getInstance();
			calendar.setTime(startDate);
			calendar.add(Calendar.DAY_OF_MONTH, i);
			dates.add(calendar.getTime());
		}
		dates.add(endDate);
		return dates;
	}

	/*
	 * 封装一月之内时间区域
	 */
	public static List<String> getStaticByMonthLabel(Date date) {
		SimpleDateFormat dateFormat = new SimpleDateFormat("dd");
		List<String> dates = new ArrayList<String>();
		Date startdate = getStartDateOfMonth(date);
		Date nextday = getStartDateOfNextMonth(date);
		long daydiff = getDiffDays(startdate, nextday);
		dates.add(dateFormat.format(startdate));
		for (int i = 1; i < daydiff; i++) {
			Calendar calendar = Calendar.getInstance();
			calendar.setTime(startdate);
			calendar.add(Calendar.DAY_OF_MONTH, i);
			dates.add(dateFormat.format(calendar.getTime()));
		}
		return dates;
	}

	public static String formatDate(String format, Date date) {
		SimpleDateFormat dateFormat = new SimpleDateFormat(format);
		return dateFormat.format(date);
	}

}
 
分享到:
评论

相关推荐

    DateUtils.java 日期处理相关工具类

    * 文件名:DateUtils.java 日期处理相关工具类 * 版本信息:V1.0 * 日期:2013-03-11 * Copyright BDVCD Corporation 2013 * 版权所有 http://www.bdvcd.com */ public class DateUtils { /**定义常量**/ ...

    DateUtils.java——日期处理

    属于时间转换工具类文件,其中包含格式转换,时区转换,时间计算等。

    日期时间处理的命令行工具Dateutils.zip

    Dateutils 包含几个命令行下处理日期时间的工具,特别用于处理大量金融数据。 标签:Dateutils

    DateUtils日期工具类

    一些日期的处理,获取当前时间、date日期和字符串相互转化等

    Java日期处理工具类DateUtils详解

    主要为大家详细介绍了Java日期处理工具类DateUtils的相关代码,包含日期和时间常用操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    DateUtils_日期工具_

    java日期工具处理,减少重复造轮子。。。。

    java时间处理工具类--DateUtils

    public class DateUtils { /** * 时间范围:年 */ public static final int YEAR = 1; /** * 时间范围:季度 */ public static final int QUARTER = 2; /** * 时间范围:月 */ public static ...

    DateUtils.java

    各种对日期操作的API,开发时如果需要对日期处理,使用此工具类可以大大提供开发效率,欢迎大家下载使用。

    31个java工具类大汇总

    汇总了Java学习开发过程中常用的一些工具类,如字符串处理的StringUtils,日期处理的DateUtils,生成32位不重复的随机数、文件操作,xml操作,文件上传下载,收发邮件等。

    日期常用万能工具类,percent

    日期工具类,包含日期格式处理、比较、获取两个日期间隔天数、月数,以及指定日期前后N天的日期和指定月份的第一天、最后一天等方法

    commons-lang

    4.DateUtils/CalendarUtils 主要提供了对日期的操作,包括日期加减,日期格式化,日期比较,一定时间范围内日期的迭代等等 5.StopWatch 提供秒表的计时,暂停等功能 6. EqualsBuilder/HashCodeBuilder提供了方便的方法...

    Android代码-安卓聊天组件化SDK

    DateUtils:格式化日期 BaseChatRow:聊天对话页面每一个item的基类,定义了通用的UI和点击事件,如头像,昵称,时间戳等。新增聊天类型时,继承该类,并且在自己的布局中定义通用的id MessageAdapter:聊天对话页面...

    commonutils:Java实用程序

    通用工具 java常用帮助类 ...DateUtils日期转换工具类 TimestampUtils初步转换工具类 crypto加密解密 AESUtils AES加密工具类 Base64Utils BASE64加解密工具类 DESUtils DES加解密工具类 EncryptAnd

    Hutool 基础工具包 v3.3.1

    Hutool是一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、xm&lt;x&gt;l等JDK方法进行封装,组成各种Util工具类,同时提供以下组件: 布隆过滤 缓存 克隆接口 类型转换 日期处理

    Industrial-waste:koto 代表日本古典乐器“Koto”的东西

    江东项目工业废弃物 @已弃用 ==== 概述 我将主要在Java的Util类中总结可以使用的东西。 最终,它应该可用于 maven。 koto目录结构 TODO 一团糟,所以你应该... DateUtils.java 总结了常用的日期处理。但是,如果你想用

    java开发erp源码-NSFW_Systen:学SSH时写的纳税服务系统,详情可看ReadMe

    某些工具类及组件如(FileUtil,POI,DateUtils) JS组件:日期组件、富文本编辑器、Fusionchart(图表组件) 抽取Action、Service、Dao,全局异常处理 权限控制的模型设计(用户、角色、权限) 数据回显和分页 Hiberna

Global site tag (gtag.js) - Google Analytics