package utils;

 import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar; public final class DateUtil{ /** 默认的年月日 */
public static final String defaultPattern = "yyyy-MM-dd"; /** hour12HMSPattern年月日 时分秒 12小时制*/
public static final String hour12HMSPattern = "yyyy-MM-dd hh:mm:ss"; /** hour12HMPattern年月日 时分 12小时制*/
public static final String hour12HMPattern = "yyyy-MM-dd hh:mm"; /** hour12HPattern年月日 时 12小时制*/
public static final String hour12HPattern = "yyyy-MM-dd hh"; /** hour24HMSPattern年月日 时分秒 24小时制 */
public static final String hour24HMSPattern = "yyyy-MM-dd HH:mm:ss"; /** hour24HMPattern年月日 时分 24小时制*/
public static final String hour24HMPattern = "yyyy-MM-dd HH:mm"; /** hour24HPattern年月日 时 24小时制*/
public static final String hour24HPattern = "yyyy-MM-dd HH"; public static String daysBetween(Date startDate, Date endDate) {
float d = endDate.getTime() - startDate.getTime();
float dd = d / 86400000f;
int ddd = (int)dd; float hh = (dd - ddd) * 24;
int hhh = (int)hh; float mm = (hh - hhh) * 60;
int mmm = (int)mm; float ss = (mm - mmm) * 60;
int sss = (int)ss;
return ddd + "天" + hhh + "小时" + mmm + "分" + sss + "秒";
} /**
* 返回预设Format的当前日期字符串
*/
public static String getToday() {
Date today = new Date();
return format(today);
} public static String getYestoday() {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(new Date());
cal1.add(Calendar.DATE, -1);
return format(cal1.getTime());
} public static String getTheDayBeforeYestoday() {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(new Date());
cal1.add(Calendar.DATE, -2);
return format(cal1.getTime());
} public static String getPreviousDay3() {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(new Date());
cal1.add(Calendar.DATE, -3);
return format(cal1.getTime());
} public static String getPreviousDay4() {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(new Date());
cal1.add(Calendar.DATE, -4);
return format(cal1.getTime());
} /**
* 用预设Format格式化Date成字符串
*/
public static String format(Date date) {
return format(date, defaultPattern);
} /**
* 使用参数Format格式化Date成字符串
*/
public static String format(Date date, String pattern) {
String returnValue = ""; if (date != null) {
SimpleDateFormat df = new SimpleDateFormat(pattern);
returnValue = df.format(date);
} return (returnValue);
} /**
* 使用预设格式将字符串转为Date
*/
public static Date parse(String strDate) throws ParseException {
return parse(strDate, defaultPattern);
} public static Date parse(String strDate, String pattern)
throws ParseException {
SimpleDateFormat df = new SimpleDateFormat(pattern);
return df.parse(strDate);
} /**
* 在日期上增加数个整月
*/
public static Date addMonth(Date date, int n) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH, n);
return cal.getTime();
} /**
* 在日期上增加日
*/
public static Date addDay(Date date, int n) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, n);
return cal.getTime();
} public static String formatDateTime(Date date) {
SimpleDateFormat outFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return outFormat.format(date);
} @SuppressWarnings("static-access")
public static String getEndOfMonth(String year, String month) {
Calendar cal = Calendar.getInstance();
cal.set(cal.YEAR, Integer.parseInt(year));
cal.set(cal.MONTH, Integer.parseInt(month) - 1);
return cal.getActualMaximum(cal.DAY_OF_MONTH) + "";
} public static String addDays(String sdate, int n) throws ParseException
{
Calendar cal1 = Calendar.getInstance();
cal1.setTime(parse(sdate, defaultPattern));
cal1.add(Calendar.DATE, n);
return format(cal1.getTime()); } public static String getFirstOfMonth() throws ParseException {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(new Date());
cal1.set(5, 1);
return format(cal1.getTime()); } public static String getFirstOfMonth(String sDate) throws ParseException {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(parse(sDate, defaultPattern));
cal1.set(5, 1);
return format(cal1.getTime()); } /**
* 获取年
*
* @param sdate
* @return String
*/
public static String getYear(String sdate) {
String[] date = sdate.split("-");
return date[0];
} /**
* 获取月
*
* @param sdate
* @return String
*/
public static String getMonth(String sdate) {
String[] date = sdate.split("-");
return date[1];
} public static String getCurrentYear() {
Calendar cale = Calendar.getInstance();
return Integer.toString(cale.get(Calendar.YEAR));
} public static String getCurrentMonth() {
Calendar cale = Calendar.getInstance();
int month = cale.get(Calendar.MONTH);
month++;
String sMonth = Integer.toString(month);
if (month < 10)
sMonth = "0" + month;
return sMonth;
} /**
* 获取天
*
* @param sdate
* @return String
*/
public static String getDay(String sdate) {
String[] date = sdate.split("-");
return date[2];
} public static String getFullDate(String date) {
if (date != null && date.length() == 1)
return "0" + date;
return date;
} public static String getSimpleDateString(String sdate) {
return sdate.replace("-", "");
} //把日期从字符弄转成日期型
public static Date convertStringToDate(String pattern, String strDate)
throws ParseException {
Date aDate = null;
aDate = parse(strDate, pattern);
return aDate;
} //根据指定格式得到当前日期的字符串
public static String getTodayDate(String aMask){
Date date = new Date();
return getDateTime(aMask,date);
} //根据指定格式得到指定日期的字符串
public static String getDateTime(String aMask, Date aDate) {
SimpleDateFormat df = null;
String returnValue = "";
df = new SimpleDateFormat(aMask);
returnValue = df.format(aDate);
return (returnValue);
} public static int getYear() {
Calendar c = Calendar.getInstance();
int yy = c.get(Calendar.YEAR);
return yy;
} public static int getMonth() {
Calendar c = Calendar.getInstance();
int month = c.get(Calendar.MONTH);
return month+1;
} public static int getDate() {
Calendar c = Calendar.getInstance();
int date = c.get(Calendar.DATE);
return date;
} public static int getHour() {
Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
return hour;
} public static int getSecond() {
Calendar c = Calendar.getInstance();
int second = c.get(Calendar.SECOND);
return second;
} public static int getMinute() {
Calendar c = Calendar.getInstance();
int minute = c.get(Calendar.MINUTE);
return minute;
} public static String getCurDateTime() {
return getCurDate() + " " + getCurTime();
} public static String getCurDate() {
String fullDate = getCurYearMonth();
int temp = getDate();
if(temp < 10){
fullDate += "-0" + temp;
}else{
fullDate += "-" + temp;
}
return fullDate;
} public static String getCurYearMonth() {
String fullDate = String.valueOf(getYear());
int temp = getMonth();
if(temp < 10){
fullDate += "-0" + temp;
}else{
fullDate += "-" + temp;
}
return fullDate;
} public static String getCurTime() {
String time = getCurHourMinute();
int temp = getSecond();
if(temp < 10){
time += ":0" + temp;
}else{
time += ":" + temp;
}
return time;
} public static String getCurHourMinute() {
String time;
int temp = getHour();
if(temp < 10){
time = "0" + temp + ":";
}else{
time = temp + ":";
}
temp = getMinute();
if(temp < 10){
time += "0" + temp;
}else{
time += temp;
}
return time;
}
/**
*
* @Description: 获取当前时间
* @param @return
* @return StringBuffer
* @throws
* @author ningpeng
* @date 2016年1月8日
*/
public static StringBuffer getNow()
{
Date date = new Date();
Calendar c = new GregorianCalendar();
c.setTime(date);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int day = c.get(Calendar.DATE);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int seconds = c.get(Calendar.SECOND);
StringBuffer buff = new StringBuffer();
buff.append(year).append(month).append(day).append(hour).append(minute).append(seconds).toString();
return buff;
} public static String DateFormat(Date date) {
Calendar c=Calendar.getInstance();
c.setTime(date);
c.get(java.util.Calendar.HOUR_OF_DAY);
String pattern="yyyy-MM-dd";
if(c.get(java.util.Calendar.HOUR_OF_DAY)!=0){
pattern="yyyy-MM-dd hh";
}else if(c.get(java.util.Calendar.MINUTE)!=0){
pattern="yyyy-MM-dd hh:mm";
}else if(c.get(java.util.Calendar.SECOND)!=0){
pattern="yyyy-MM-dd hh:mm:ss";
}
return new SimpleDateFormat(pattern).format(date);
} public static void main(String[] args){
System.out.println(getMonth());
}
}

DateUtil时间工具类的更多相关文章

  1. 基于Java8的日期时间工具类DateTimeFormatter

    原文:https://blog.csdn.net/qq_36596145/article/details/85331002 import java.time.Instant; import java. ...

  2. java8时间类API安全问题(赠送新的时间工具类哟)

    LocalDateTime等新出的日期类全是final修饰的类,不能被继承,且对应的日期变量都是final修饰的,也就是不可变类.赋值一次后就不可变,不存在多线程数据问题. simpleDateFor ...

  3. hutool的时间工具类

    hutool的时间工具类 糊涂的时间工具类有很多使用方法,用到了这几个 日期向后偏移     String now = DateUtil.now();        Date date4= DateU ...

  4. 代码片段:基于 JDK 8 time包的时间工具类 TimeUtil

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “知识的工作者必须成为自己时间的首席执行官.” 前言 这次泥瓦匠带来的是一个好玩的基于 JDK ...

  5. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  6. 小记Java时间工具类

    小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...

  7. 超详细的Java时间工具类

    package com.td.util; import java.sql.Timestamp; import java.text.ParseException; import java.text.Pa ...

  8. java时间工具类

    在项目中,很多地方需要根据时间获取相应的数据,将时间格式化,或者时间比较等相关操作.一个良好的工具类不仅可以减少代码冗余,还能促进业务处理,加快进度. /** * @author: lxw * @Da ...

  9. Apache Commons Lang之日期时间工具类

    码农不识Apache,码尽一生也枉然. FastDateFormat FastDateFormat是一个快速且线程安全的时间操作类,它完全可以替代SimpleDateFromat.因为是线程安全的,所 ...

随机推荐

  1. MySQL定时任务与存储过程实例

    shell 定时任务:​/usr/bin/mysql -uroot -pxxxxx databasename -e "update table set ......."​​mysq ...

  2. 【Five-Minute Share】“请先了解所使用的工具 ,磨刀不误砍柴工”

    数据是应用系统的血液,没有数据的系统应用价值是非常有限的.经过多年的观察发现,身边很多的程序开发人员在开发应用系统的时候,都是按照标准SQL语法及应用方法去进行数据库设计,并进行应用开发的,没有任何的 ...

  3. Lazy Initialization with Swift

    Lazy initialization (also sometimes called lazy instantiation, or lazy loading) is a technique for d ...

  4. gulp打包压缩代码以及图片

    1.首先全局安装gulp 全局安装就不做介绍了 初学gulp,终于把常用的配置,api,语法弄明白了! gulp插件地址:http://gulpjs.com/plugins gulp官方网址:http ...

  5. jquery里面的选择器

    jQuery 元素选择器 jQuery 使用 CSS 选择器来选取 HTML 元素. $("p") 选取 <p> 元素. $("p.intro") ...

  6. C++基础 (8) 第八天 数组指针 模板指针 C语言中的多态 模板函数

    1昨日回顾 2 多态的练习-圆的图形 3多态的练习-程序员薪资 4员工管理案例-抽象类和技术员工的实现 employee.h: employee.cpp: technician.h: technici ...

  7. THUWC2019 划水记

    Day -2 在学校呆了inf天之后终于回家了! Day 0 在家无(tui)所(fei)事(mo)事(yu),顺便被拉出去剪了个头发,想写写thusc2017的题也写不动,一直在网上冲浪,到处乱翻以 ...

  8. select的option触发事件

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  9. MyBatis中的大于号小于号表示

    可以使用转义字符把大于号和小于号这种直接替换掉: select* from table where '字段1'>=10怎么表示,问题来啦 xml转义可以使用 根据这个规则上面的sql写法应该变成 ...

  10. java8新特性:利用Lambda处理List集合

    Java 8新增的Lambda表达式,我们可以用简洁高效的代码来处理List. 1.遍历 public static void main(String[] args) { List<User&g ...