java 对时间(Date)随笔!
/**
* 获取系统当前时间
* @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)随笔!的更多相关文章
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型 java.util.Date dt = new Date(); ...
- Java 日期时间 Date类型,long类型,String类型表现形式的转换 (转)
Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型java.util.Date dt = new Date();Sy ...
- 【java】JDK1.8时间日期库 新特性 所有java中时间Date的使用
除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用java 8的这套API.Java对日期, ...
- JAVA基础——时间Date类型转换
在java中有六大时间类,分别是: 1.java.util包下的Date类, 2.java.sql包下的Date类, 3.java.text包下的DateFormat类,(抽象类) 4.java.te ...
- Java日期时间(Date/Time)
获取当前日期和时间 在Java中容易得到当前的日期和时间.可以使用一个简单的Date对象的toString()方法,如下所示打印当前日期和时间: import java.util.Date; publ ...
- java日期时间Date类
java.util包提供了Date类来封装当前的日期和时间. Date类提供两个构造函数来实例化Date对象. 第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二个构造函数接收一个参 ...
- Java学习--使用 Date 和 SimpleDateFormat 类表示时间
使用 Date 和 SimpleDateFormat 类表示时间 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取 ...
- JAVA中使用Date和SimpleDateFromat类表示时间
转自:https://www.imooc.com/code/2335 仅做个人学习保存之用,侵删! 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Dat ...
- 3.Java基础之Date对象
毕向东老师Java基础学习笔记——Date对象 今天学习Java中的Date对象后,感觉这个对象对我们主要有以下几点用处. 1.获取时间和日期并按照自己定义的格式显示. 2.网站设计时显示时间. 知 ...
- Java实现时间动态显示方法汇总
这篇文章主要介绍了Java实现时间动态显示方法汇总,很实用的功能,需要的朋友可以参考下 本文所述实例可以实现Java在界面上动态的显示时间.具体实现方法汇总如下: 1.方法一 用TimerTask: ...
随机推荐
- rsync+inotify脚本
#!/bin/bash src=/data/ # 需要同步的源路径 des=data ...
- ABC: Always Be Coding
ABC: Always Be Coding (原地址:https://medium.com/@davidbyttow/abc-always-be-coding-d5f8051afce2) Be h ...
- moment倒计时插件
https://github.com/icambron/moment-countdown
- 利用select实现伪并发的socket
使用socket模块可以实现程序之间的通信,但是server在同一时刻只能和一个客户端进行通信,如果要实现一个server端可以和多个客户端进行通信可以使用 1.多线程 2.多进程 3.select ...
- Python 获取 网易云音乐热门评论
最近在研究文本挖掘相关的内容,所谓巧妇难为无米之炊,要想进行文本分析,首先得到有文本吧.获取文本的方式有很多,比如从网上下载现成的文本文档,或者通过第三方提供的API进行获取数据.但是有的时候我们想要 ...
- 个人作业2——英语学习APP案例分析
一.个人体验 1.下载并使用,描述最简单直观的个人第一次上手体验. ①入眼界面华丽,有正能量的名言警句配上很有意境的图片,界面美观. ②内容丰富,有许多精选英文文章,同时配有中文翻译,便于理解. ③能 ...
- 使用nginx代理kibana并设置身份验证
1.在es-sever上安装nginx #wget http://nginx.org/download/nginx-1.8.1.tar.gz #tar xvf nginx-1.8.1.tar.gz # ...
- 关于SQL的一些小知识
在代码中调用存储过程的时,必须先测试存储过程,存储过程测试成功之后再去java中去调用!!@!@#!@!@! 以后自己写的存储过程写一个本地保存一个.!~~~!!(这个很关键) 以后在代码中的SQL都 ...
- jq轮播图插件
/* * 使用说明 * * 1:需要提供一个标签 * 2:lis:图片的个数 * 3:轮播图的大小 width ,height * 4:图片的地址imgs[0].carou ...
- 【转】PV3D的小练习~太阳系八大行星
转自:http://hi.baidu.com/boycy/item/70d1ba53bc8c3a958c12eddf http://www.cnblogs.com/flash3d/archive/20 ...