/**
* 获取系统当前时间
* @return 系统当前时间
*/
public static Date now() {
return new Date();
}

/**
* 根据指定的日期,获取其相对天数days之前的日期
* eg: data=2013-09-09
* days = 3
* 返回=2013-09-06
* @param date 指定的日期
* @param days 相对天数
* @return 日期
*/
public static Date getDateBefore(Date date, int days) {
if (date == null)
date = now();
Calendar now = Calendar.getInstance();
now.setTime(date);
now.set(Calendar.DATE, now.get(Calendar.DATE) - days);
return now.getTime();
}

/**
* 根据指定的日期,获取其相对月数months之前的日期
* eg: data=2013-09-09
* month = 1
* 返回=2013-08-10
* @param date 指定的日期
* @param months 相对月数
* @return 日期
*/
public static Date getDateBeforeMonth(Date date, int months) {
if (date == null)
date = now();
Calendar now = Calendar.getInstance();
now.setTime(date);
now.set(Calendar.MONTH, now.get(Calendar.MONTH) - months);
return now.getTime();
}

/**
* 根据指定的日期,获取其相对月数months之后的日期
* eg: data=2013-09-09
* month = 1
* 返回=2013-10-10
* @param date 指定的日期
* @param months 相对月数
* @return 日期
*/
public static Date getDateAfterMonth(Date date, int months) {
if (date == null)
date = now();
Calendar now = Calendar.getInstance();
now.setTime(date);
now.set(Calendar.MONTH, now.get(Calendar.MONTH) + months);
return now.getTime();
}

/**
* 根据指定的日期,获取其相对天数days之后的日期
* eg: data=2013-09-09
* days = 3
* 返回=2013-09-12
* @param date 指定的日期
* @param days 相对天数
* @return 日期
*/
public static Date getDateAfter(Date date, int days) {
if (date == null)
date = now();
Calendar now = Calendar.getInstance();
now.setTime(date);
now.set(Calendar.DATE, now.get(Calendar.DATE) + days);
return now.getTime();
}

/**
* 根据指定的日期,获取其相对年数years之后的日期
* eg: data=2013-09-09
* month = 1
* 返回=2014-09-08
* @param date 指定的日期
* @param year 相对年数
* @return 日期
*/
public static Date getDateAfterYear(Date date, int year) {
if (date == null)
date = now();
Calendar now = Calendar.getInstance();
now.setTime(date);
now.set(Calendar.YEAR, now.get(Calendar.YEAR) + year);
return now.getTime();
}

public static String getDate(Date date, String format) {
if (date == null)
date = now();
return new SimpleDateFormat(format).format(date);
}

public static String getCurrentDate(String format) {
return getDate(new Date(), format);
}

public static String getCurrentDate() {
return getCurrentDate("yyyy-MM-dd");
}

/**
* 自定义格式化时间
*
* @param date 时间
* @param formatStr 格式化字符串,默认 MM/dd/yyyy
* @return 格式化的时间字符串
*/
public static String formartDate(Date date, String formatStr) {
if (date == null)
date = now();
if (StringUtil.isEmpty(formatStr)) {
formatStr = "MM/dd/yyyy";
}
SimpleDateFormat sdf = new SimpleDateFormat(formatStr);
return sdf.format(date);
}

/**
* 将带时间格式字符转换成时间类型
* @param dateStr 带时间格式的字符串
* @param pattern 格式化字符串
* @return 转换后时间类型数据
*/
public static Date formDate(String dateStr,String pattern){
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date date = null ;
try {
date = sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}

/**
* 获取当天开始时间
*
* @return
*/
public static Date getStartTime() {
Calendar todayStart = Calendar.getInstance();
todayStart.set(Calendar.HOUR, 0);
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MILLISECOND, 0);

return todayStart.getTime();
}

/**
* 获取当天结束时间
*
* @return
*/
public static Date getEndTime() {
Calendar todayEnd = Calendar.getInstance();
todayEnd.set(Calendar.YEAR, 4028);
todayEnd.set(Calendar.HOUR_OF_DAY, 23);
todayEnd.set(Calendar.MINUTE, 59);
todayEnd.set(Calendar.SECOND, 59);
todayEnd.set(Calendar.MILLISECOND, 999);
return todayEnd.getTime();
}

/**
* 比较两个时间差
* @param start 开始时间
* @param end 结束时间
* @return 两个时间差
* @throws ParseException
*/

public static long timeCompare(Date start,Date end) {
Calendar aCalendar = Calendar.getInstance();

aCalendar.setTime(start);

int day1 = aCalendar.get(Calendar.DAY_OF_YEAR);

aCalendar.setTime(end);

int day2 = aCalendar.get(Calendar.DAY_OF_YEAR);

return day2 - day1 ;

}

/**
* 比较两个时间大小
* @param start
* @param end
* @return end - start > 0 true ,否则 false
*/
public static boolean compare(Date start,Date end) {
Calendar aCalendar = Calendar.getInstance();

aCalendar.setTime(start);

int day1 = aCalendar.get(Calendar.DAY_OF_YEAR);

aCalendar.setTime(end);

int day2 = aCalendar.get(Calendar.DAY_OF_YEAR);

return day2 - day1 >= 0 ? true:false ;

}

public static int getYear(){
Calendar a=Calendar.getInstance();
return a.get(Calendar.YEAR);
}
public static int getMonth(){
Calendar a=Calendar.getInstance();
return a.get(Calendar.MONTH)+1;
}
public static int getDate(){
Calendar a=Calendar.getInstance();
return a.get(Calendar.DATE);
}

/**
* 获取当年的第一天
* @param year
* @return
*/
public static Date getYearFirst(){
Calendar ca=Calendar.getInstance();
int Year = ca.get(Calendar.YEAR);

ca.clear();
ca.set(Calendar.YEAR, Year);
Date YearFirst = ca.getTime();
return YearFirst;
}

/**
* 获取当年的最后一天
* @param year
* @return
*/
public static Date getYearLast(){
Calendar ca=Calendar.getInstance();
int Year = ca.get(Calendar.YEAR);

ca.clear();
ca.set(Calendar.YEAR, Year);
ca.roll(Calendar.DAY_OF_YEAR, -1);

Date yearLast = ca.getTime();

return yearLast;

}

public static void main(String[] args) {
String str1 = "2014-02-20";
String str2 = "2014-12-20";
List<String> listB = new ArrayList<String>();
List<String> listE = new ArrayList<String>();
listB.add("2014-01-01");
listE.add("2014-12-30");

System.out.println(insertValidate(str1, str2, listB, listE));

}

/**
* 判断时间交叉
* @param beginDate
* @param endDate
* @param beginDateList
* @param endDateList
* @return false 交叉,true,不交叉.
*/
public static boolean insertValidate(String beginDate,String endDate,List<String> beginDateList,List<String> endDateList){
Integer begin = trimChar(beginDate);
Integer end = trimChar(endDate);
List<Integer> beginList = new ArrayList<Integer>();
List<Integer> endList = new ArrayList<Integer>();
for(int i = 0 ; i < beginDateList.size();i++){
beginList.add(trimChar(beginDateList.get(i)));
endList.add(trimChar(endDateList.get(i)));//一个开始时间对应一个结束时间
}

for(int i = 0 ; i < endList.size() ; i ++){
if(begin < endList.get(i) && end > beginList.get(i)){
return false; //存在重叠
}
}

return true;
}

public static Integer trimChar(String str){
String year = str.substring(0,4 );
String yue = str.substring(5,7 );
String ri = str.substring(8,10);
String newString = year+yue+ri;
System.out.println(newString);
return Integer.parseInt(newString);
}

java 对时间(Date)随笔!的更多相关文章

  1. Java 日期时间 Date类型,long类型,String类型表现形式的转换

    Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型 java.util.Date dt = new Date(); ...

  2. Java 日期时间 Date类型,long类型,String类型表现形式的转换 (转)

    Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型java.util.Date dt = new Date();Sy ...

  3. 【java】JDK1.8时间日期库 新特性 所有java中时间Date的使用

    除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用java 8的这套API.Java对日期, ...

  4. JAVA基础——时间Date类型转换

    在java中有六大时间类,分别是: 1.java.util包下的Date类, 2.java.sql包下的Date类, 3.java.text包下的DateFormat类,(抽象类) 4.java.te ...

  5. Java日期时间(Date/Time)

    获取当前日期和时间 在Java中容易得到当前的日期和时间.可以使用一个简单的Date对象的toString()方法,如下所示打印当前日期和时间: import java.util.Date; publ ...

  6. java日期时间Date类

    java.util包提供了Date类来封装当前的日期和时间. Date类提供两个构造函数来实例化Date对象. 第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二个构造函数接收一个参 ...

  7. Java学习--使用 Date 和 SimpleDateFormat 类表示时间

    使用 Date 和 SimpleDateFormat 类表示时间 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取 ...

  8. JAVA中使用Date和SimpleDateFromat类表示时间

    转自:https://www.imooc.com/code/2335 仅做个人学习保存之用,侵删! 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Dat ...

  9. 3.Java基础之Date对象

    毕向东老师Java基础学习笔记——Date对象 今天学习Java中的Date对象后,感觉这个对象对我们主要有以下几点用处. 1.获取时间和日期并按照自己定义的格式显示. 2.网站设计时显示时间.  知 ...

  10. Java实现时间动态显示方法汇总

    这篇文章主要介绍了Java实现时间动态显示方法汇总,很实用的功能,需要的朋友可以参考下 本文所述实例可以实现Java在界面上动态的显示时间.具体实现方法汇总如下: 1.方法一 用TimerTask: ...

随机推荐

  1. 【转】深入理解RunLoop

    RunLoop 是 iOS 和 OS X 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理.之后会介绍一下在 iOS 中,苹果是如何 ...

  2. C++枚举类型详解

    原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5171110.html  一.枚举类型的定义 enum 类型名 {枚举值表}: 类型名是变量名,指定 ...

  3. PRINCE2的发展情况是什么样

    英国皇家特许培训机构AXELOS近期公布了一份调查结果,调查共有172位项目经理参与,其结果展示了未来全球趋势,对项目经理未来的职业形态和对他们必备技能的影响.  未来的项目管理职业  调查结果同时给 ...

  4. swfobject.js加载swf,关于是否加加载完成;

    这几个帖子可以参考下 http://bbs.9ria.com/forum.php?mod=viewthread&page=1&tid=38913 http://bbs.9ria.com ...

  5. 老李分享:Android -自动化埋点 2

    除了上述的事件,Android提供了一个OnTouchListener的监听器,当事件传递到控件的时候,如果控件注册了这个监听器,则会执行监听器中的onTouch方法.同时,如果它返回true,则事件 ...

  6. 老李分享:curl发起https请求

    老李分享:curl发起https请求 在POPTEST上课的过程中,我们需要本地模拟https请求来完成性能测试,我们用curl来实现,curl是利用URL语法在命令行方式下工作的开源文件传输工具,使 ...

  7. Zookeeper的安装和初步使用

    1. Zookeeper集群角色 Zookeeper集群的角色:  Leader 和  follower  (Observer) zk集群最好配成奇数个节点 只要集群中有半数以上节点存活,集群就能提供 ...

  8. UIDatePicker的使用

    UIDatePicker的介绍 UIDatePicker这个类的对象让用户可以在多个车轮上选择日期和时间.iPhone手机上的‘时钟’应用程序中的时间与闹铃中便使用了该控件.使用这个控件时,如果你能配 ...

  9. git常见操作和常见错误

    最近写了个博客demo,在上传至github时,居然报错了,刚开始学习代码上传,免不了遇到一些问题,报错信息如下: fatal: remote origin already exists. (致命错误 ...

  10. jquery 基础变量定义

    var $i=$("#D1"); var i=$("#D2"); function(){      //这里获取控件对象值      var d1=$i.val ...