JAVA时间Date工具类
package com.common.util; import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; public class DateUtils {
private StringBuffer buffer = new StringBuffer();
private static String ZERO = "0";
private static DateUtils date;
public static SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
public static SimpleDateFormat format1 = new SimpleDateFormat(
"yyyyMMdd HH:mm:ss");
public static SimpleDateFormat common_format = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss"); public String getNowString() {
Calendar calendar = getCalendar();
buffer.delete(0, buffer.capacity());
buffer.append(getYear(calendar)); if (getMonth(calendar) < 10) {
buffer.append(ZERO);
}
buffer.append(getMonth(calendar)); if (getDate(calendar) < 10) {
buffer.append(ZERO);
}
buffer.append(getDate(calendar));
if (getHour(calendar) < 10) {
buffer.append(ZERO);
}
buffer.append(getHour(calendar));
if (getMinute(calendar) < 10) {
buffer.append(ZERO);
}
buffer.append(getMinute(calendar));
if (getSecond(calendar) < 10) {
buffer.append(ZERO);
}
buffer.append(getSecond(calendar));
return buffer.toString();
} private static int getDateField(Date date, int field) {
Calendar c = getCalendar();
c.setTime(date);
return c.get(field);
} public static int getYearsBetweenDate(Date begin, Date end) {
int bYear = getDateField(begin, Calendar.YEAR);
int eYear = getDateField(end, Calendar.YEAR);
return eYear - bYear;
} public static int getMonthsBetweenDate(Date begin, Date end) {
int bMonth = getDateField(begin, Calendar.MONTH);
int eMonth = getDateField(end, Calendar.MONTH);
return eMonth - bMonth;
} public static int getWeeksBetweenDate(Date begin, Date end) {
int bWeek = getDateField(begin, Calendar.WEEK_OF_YEAR);
int eWeek = getDateField(end, Calendar.WEEK_OF_YEAR);
return eWeek - bWeek;
} public static int getDaysBetweenDate(Date begin, Date end) {
return (int) ((end.getTime()-begin.getTime())/(1000 * 60 * 60 * 24));
} public static void main(String args[]) {
System.out.println(getSpecficMonthStart(Calendar.getInstance().getTime(), 0));
} /**
* 获取date年后的amount年的第一天的开始时间
*
* @param amount
* 可正、可负
* @return
*/
public static Date getSpecficYearStart(Date date, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.YEAR, amount);
cal.set(Calendar.DAY_OF_YEAR, 1);
return getStartDate(cal.getTime());
} /**
* 获取date年后的amount年的最后一天的终止时间
*
* @param amount
* 可正、可负
* @return
*/
public static Date getSpecficYearEnd(Date date, int amount) {
Date temp = getStartDate(getSpecficYearStart(date, amount + 1));
Calendar cal = Calendar.getInstance();
cal.setTime(temp);
cal.add(Calendar.DAY_OF_YEAR, -1);
return getFinallyDate(cal.getTime());
} /**
* 获取date月后的amount月的第一天的开始时间
*
* @param amount
* 可正、可负
* @return
*/
public static Date getSpecficMonthStart(Date date, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH, amount);
cal.set(Calendar.DAY_OF_MONTH, 1);
return getStartDate(cal.getTime());
} /**
* 获取当前自然月后的amount月的最后一天的终止时间
*
* @param amount
* 可正、可负
* @return
*/
public static Date getSpecficMonthEnd(Date date, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(getSpecficMonthStart(date, amount + 1));
cal.add(Calendar.DAY_OF_YEAR, -1);
return getFinallyDate(cal.getTime());
} /**
* 获取date周后的第amount周的开始时间(这里星期一为一周的开始)
*
* @param amount
* 可正、可负
* @return
*/
public static Date getSpecficWeekStart(Date date, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.setFirstDayOfWeek(Calendar.MONDAY); /* 设置一周的第一天为星期一 */
cal.add(Calendar.WEEK_OF_MONTH, amount);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return getStartDate(cal.getTime());
} /**
* 获取date周后的第amount周的最后时间(这里星期日为一周的最后一天)
*
* @param amount
* 可正、可负
* @return
*/
public static Date getSpecficWeekEnd(Date date, int amount) {
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY); /* 设置一周的第一天为星期一 */
cal.add(Calendar.WEEK_OF_MONTH, amount);
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
return getFinallyDate(cal.getTime());
} public static Date getSpecficDateStart(Date date, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_YEAR, amount);
return getStartDate(cal.getTime());
} public static Date getSpecficDateEnd(Date date, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_YEAR, amount);
return getFinallyDate(cal.getTime());
} /**
* 得到指定日期的一天的的最后时刻23:59:59
*
* @param date
* @return
*/
public static Date getFinallyDate(Date date) {
String temp = format.format(date);
temp += " 23:59:59"; try {
return format1.parse(temp);
} catch (ParseException e) {
return null;
}
} /**
* 得到指定日期的一天的的最后时刻23:59:59
*
* @param date
* @return
*/
public static String getFinallyDateStr(Date date) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String temp = format.format(date);
temp += " 23:59:59"; try {
return temp;
} catch (Exception e) {
return temp;
}
} /**
* 得到指定日期的一天的开始时刻00:00:00
*
* @param date
* @return
*/
public static Date getStartDate(Date date) {
String temp = format.format(date);
temp += " 00:00:00"; try {
return format1.parse(temp);
} catch (Exception e) {
return null;
}
} /**
* 得到指定日期的一天的开始时刻00:00:00
*
* @param date
* @return
*/
public static String getStartDateStr(Date date) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String temp = format.format(date);
temp += " 00:00:00"; try {
return temp;
} catch (Exception e) {
return temp;
}
} /**
*
* @param date
* 指定比较日期
* @param compareDate
* @return
*/
public static boolean isInDate(Date date, Date compareDate) {
if (compareDate.after(getStartDate(date))
&& compareDate.before(getFinallyDate(date))) {
return true;
} else {
return false;
} } /**
* 获取两个时间的差值秒
* @param d1
* @param d2
* @return
*/
public static Integer getSecondBetweenDate(Date d1,Date d2){
Long second=(d2.getTime()-d1.getTime())/1000;
return second.intValue();
} private int getYear(Calendar calendar) {
return calendar.get(Calendar.YEAR);
} private int getMonth(Calendar calendar) {
return calendar.get(Calendar.MONDAY) + 1;
} private int getDate(Calendar calendar) {
return calendar.get(Calendar.DATE);
} private int getHour(Calendar calendar) {
return calendar.get(Calendar.HOUR_OF_DAY);
} private int getMinute(Calendar calendar) {
return calendar.get(Calendar.MINUTE);
} private int getSecond(Calendar calendar) {
return calendar.get(Calendar.SECOND);
} private static Calendar getCalendar() {
return Calendar.getInstance();
} public static DateUtils getDateInstance() {
if (date == null) {
date = new DateUtils();
}
return date;
}
}
package com.jetcms.common.util; import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; /**
* @author hzp
*/
public class DateUtils {
private StringBuffer buffer = new StringBuffer();
private static String ZERO = "0";
private static DateUtils date;
public static SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
public static SimpleDateFormat format1 = new SimpleDateFormat(
"yyyyMMdd HH:mm:ss");
public static SimpleDateFormat common_format = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss"); public String getNowString() {
Calendar calendar = getCalendar();
buffer.delete(, buffer.capacity());
buffer.append(getYear(calendar)); if (getMonth(calendar) < ) {
buffer.append(ZERO);
}
buffer.append(getMonth(calendar)); if (getDate(calendar) < ) {
buffer.append(ZERO);
}
buffer.append(getDate(calendar));
if (getHour(calendar) < ) {
buffer.append(ZERO);
}
buffer.append(getHour(calendar));
if (getMinute(calendar) < ) {
buffer.append(ZERO);
}
buffer.append(getMinute(calendar));
if (getSecond(calendar) < ) {
buffer.append(ZERO);
}
buffer.append(getSecond(calendar));
return buffer.toString();
} private static int getDateField(Date date, int field) {
Calendar c = getCalendar();
c.setTime(date);
return c.get(field);
} public static int getYearsBetweenDate(Date begin, Date end) {
int bYear = getDateField(begin, Calendar.YEAR);
int eYear = getDateField(end, Calendar.YEAR);
return eYear - bYear;
} public static int getMonthsBetweenDate(Date begin, Date end) {
int bMonth = getDateField(begin, Calendar.MONTH);
int eMonth = getDateField(end, Calendar.MONTH);
return eMonth - bMonth;
} public static int getWeeksBetweenDate(Date begin, Date end) {
int bWeek = getDateField(begin, Calendar.WEEK_OF_YEAR);
int eWeek = getDateField(end, Calendar.WEEK_OF_YEAR);
return eWeek - bWeek;
} public static int getDaysBetweenDate(Date begin, Date end) {
return (int) ((end.getTime()-begin.getTime())/(1000 * 60 * 60 * ));
} public static void main(String args[]) {
System.out.println(getSpecficMonthStart(Calendar.getInstance().getTime(), ));
} /**
* 获取date年后的amount年的第一天的开始时间
*
* @param amount
* 可正、可负
* @return
*/
public static Date getSpecficYearStart(Date date, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.YEAR, amount);
cal.set(Calendar.DAY_OF_YEAR, );
return getStartDate(cal.getTime());
} /**
* 获取date年后的amount年的最后一天的终止时间
*
* @param amount
* 可正、可负
* @return
*/
public static Date getSpecficYearEnd(Date date, int amount) {
Date temp = getStartDate(getSpecficYearStart(date, amount + ));
Calendar cal = Calendar.getInstance();
cal.setTime(temp);
cal.add(Calendar.DAY_OF_YEAR, -);
return getFinallyDate(cal.getTime());
} /**
* 获取date月后的amount月的第一天的开始时间
*
* @param amount
* 可正、可负
* @return
*/
public static Date getSpecficMonthStart(Date date, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH, amount);
cal.set(Calendar.DAY_OF_MONTH, );
return getStartDate(cal.getTime());
} /**
* 获取当前自然月后的amount月的最后一天的终止时间
*
* @param amount
* 可正、可负
* @return
*/
public static Date getSpecficMonthEnd(Date date, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(getSpecficMonthStart(date, amount + ));
cal.add(Calendar.DAY_OF_YEAR, -);
return getFinallyDate(cal.getTime());
} /**
* 获取date周后的第amount周的开始时间(这里星期一为一周的开始)
*
* @param amount
* 可正、可负
* @return
*/
public static Date getSpecficWeekStart(Date date, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.setFirstDayOfWeek(Calendar.MONDAY); /* 设置一周的第一天为星期一 */
cal.add(Calendar.WEEK_OF_MONTH, amount);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return getStartDate(cal.getTime());
} /**
* 获取date周后的第amount周的最后时间(这里星期日为一周的最后一天)
*
* @param amount
* 可正、可负
* @return
*/
public static Date getSpecficWeekEnd(Date date, int amount) {
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY); /* 设置一周的第一天为星期一 */
cal.add(Calendar.WEEK_OF_MONTH, amount);
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
return getFinallyDate(cal.getTime());
} public static Date getSpecficDateStart(Date date, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_YEAR, amount);
return getStartDate(cal.getTime());
} public static Date getSpecficDateEnd(Date date, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_YEAR, amount);
return getFinallyDate(cal.getTime());
} /**
* 得到指定日期的一天的的最后时刻23:59:59
*
* @param date
* @return
*/
public static Date getFinallyDate(Date date) {
String temp = format.format(date);
temp += " 23:59:59"; try {
return format1.parse(temp);
} catch (ParseException e) {
return null;
}
} /**
* 得到指定日期的一天的的最后时刻23:59:59
*
* @param date
* @return
*/
public static String getFinallyDateStr(Date date) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String temp = format.format(date);
temp += " 23:59:59"; try {
return temp;
} catch (Exception e) {
return temp;
}
} /**
* 得到指定日期的一天的开始时刻00:00:00
*
* @param date
* @return
*/
public static Date getStartDate(Date date) {
String temp = format.format(date);
temp += " 00:00:00"; try {
return format1.parse(temp);
} catch (Exception e) {
return null;
}
} /**
* 得到指定日期的一天的开始时刻00:00:00
*
* @param date
* @return
*/
public static String getStartDateStr(Date date) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String temp = format.format(date);
temp += " 00:00:00"; try {
return temp;
} catch (Exception e) {
return temp;
}
} /**
*
* @param date
* 指定比较日期
* @param compareDate
* @return
*/
public static boolean isInDate(Date date, Date compareDate) {
if (compareDate.after(getStartDate(date))
&& compareDate.before(getFinallyDate(date))) {
return true;
} else {
return false;
} } /**
* 获取两个时间的差值秒
* @param d1
* @param d2
* @return
*/
public static Integer getSecondBetweenDate(Date d1,Date d2){
Long second=(d2.getTime()-d1.getTime())/;
return second.intValue();
} private int getYear(Calendar calendar) {
return calendar.get(Calendar.YEAR);
} private int getMonth(Calendar calendar) {
return calendar.get(Calendar.MONDAY) + ;
} private int getDate(Calendar calendar) {
return calendar.get(Calendar.DATE);
} private int getHour(Calendar calendar) {
return calendar.get(Calendar.HOUR_OF_DAY);
} private int getMinute(Calendar calendar) {
return calendar.get(Calendar.MINUTE);
} private int getSecond(Calendar calendar) {
return calendar.get(Calendar.SECOND);
} private static Calendar getCalendar() {
return Calendar.getInstance();
} public static DateUtils getDateInstance() {
if (date == null) {
date = new DateUtils();
}
return date;
}
}
JAVA时间Date工具类的更多相关文章
- java时间处理工具类--DateUtils
package com.hexiang.utils; /** * @(#)DateUtil.java * * * @author kidd * @version 1.00 2007/8/8 */ im ...
- Java中Date类型如何向前向后滚动时间,( 附工具类)
Java中的Date类型向前向后滚动时间(附工具类) 废话不多说,先看工具类: import java.text.SimpleDateFormat; import java.util.Calendar ...
- 使用java的Calendar工具类获取到本月的第一天起始时间和最后一天结束时间。
1.使用java的Calendar工具类获取到本月的第一天起始时间和最后一天结束时间. package com.fline.aic.utils; import java.text.DateFormat ...
- [java工具类01]__构建格式化输出日期和时间的工具类
在之前的学习中,我写过一篇关于字符串格式化的,就主要设计到了时间以及日期的各种格式化显示的设置,其主要时通过String类的fomat()方法实现的. 我们可以通过使用不同的转换符来实现格式化显示不同 ...
- Java日期时间实用工具类
Java日期时间实用工具类 1.Date (java.util.Date) Date(); 以当前时间构造一个Date对象 Date(long); 构造函数 ...
- HttpTool.java(在java tool util工具类中已存在) 暂保留
HttpTool.java 该类为java源生态的http 请求工具,不依赖第三方jar包 ,即插即用. package kingtool; import java.io.BufferedReader ...
- java格式处理工具类
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio ...
- Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类
Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...
- JAVA 8 日期工具类
JAVA 8 日期工具类 主题描述 JAVA中日期时间的历史 代码成果 主题描述 JAVA的日期时间一直比较混乱,本来以为joda会是巅峰,但是JAVA 8改变了我的思想.但是即便在JAVA 8面前, ...
随机推荐
- C#生成唯一值的方法汇总
生成唯一值的方法很多,下面就不同环境下生成的唯一标识方法一一介绍,作为工作中的一次总结,有兴趣的可以自行测试: https://www.cnblogs.com/xinweichen/p/4287640 ...
- 【js】正则
复习字符串操作search 查找substring 获取子字符串charAt 获取某个字符split 分割字符串,获得数组 <script> var str="abcdef&qu ...
- 【Codeforces】【网络流】【树链剖分】【线段树】ALT (CodeForces - 786E)
题意 现在有m个人,每一个人都特别喜欢狗.另外还有一棵n个节点的树. 现在每个人都想要从树上的某个节点走到另外一个节点,且满足要么这个人自带一条狗m,要么他经过的所有边h上都有一条狗. 2<=n ...
- Docker操作笔记(二)容器
容器 一.启动容器 启动一个容器有两种方式: 1.基于镜像新键并启动一个容器: 所需要的主要命令为docker run docker run ubuntu:18.04 /bin/echo " ...
- pymongo使用手册
MongoDB是由C++语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似JSON对象,它的字段值可以包含其他文档.数组及文档数组,非常灵活.在这一节中,我们就来看 ...
- 修改终端terminal
修改终端路径 显示的颜色 (1)在home目录中,新建 .dircolors: $vi .dircolors 输入下面内容 DIR 00;36 保存退出. (2)在 .bashrc文件中 $vi .b ...
- Mysql概念及基本操作
1.Mysql 概念 1.1 定义 数据库本质是一个C/S的套接字软件 关系型数据库:MySQL mariadb db2 非关系型:存取数据是以key:Value mongodb redis 1.2 ...
- 对Spring 的RestTemplate进行包装
Spring的RestTemplate及大地简化了REST Client的开发,但每次还要编写大量的模板代码,代码不够简洁.我对他进行了一次包装,采用接口来声明REST接口,使用Annotation对 ...
- 移动端滑动效果 swiper 4.0.7
<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8" ...
- Java 中的字符串转为二进制
/** * 将字符串转为二进制 */ public class StrConversion { public static void main(String args[]) { String str ...