자바 상용 DateUtils 도구 클래스
8770 단어 자바
package com.irs.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.apache.log4j.Logger;
/**
*
* @ClassName: DateUtil
* @Description:
* @Author:
* @Version: V1.00 ( )
* @CreateDate: 2018 12 22 12:12:43
*/
public class DateUtil {
private static Logger LOGGER = Logger.getLogger(DateUtil.class);
/**
* Format String : yyyy-MM-dd HH:mm:ss
*/
public static final String DateFormat1 = "yyyy-MM-dd HH:mm:ss";
/**
* Format String : yyyy-MM-dd
*/
public static final String DateFormat2 = "yyyy-MM-dd";
/**
* Format String : yyyyMMdd
*/
public static final String DateFormat3 = "yyyyMMdd";
/**
* Format String : yyyyMMdd HHmmss
*/
public static final String DateFormat4 = "yyyyMMdd HHmmss";
/**
* Format String : yyyy-MM-dd HH:mm
*/
public static final String DateFormat5 = "yyyy-MM-dd HH:mm";
/**
* Format String : yyyyMMdd HH:mm
*/
public static final String DateFormat6 = "yyyyMMdd HH:mm";
/**
* Format String : yyyy MM dd
*/
public static final String DateFormat7 = "yyyy MM dd ";
/**
*
*
* @return Date
*/
public static Date getDate() {
Calendar calendar = Calendar.getInstance();
return calendar.getTime();
}
/**
*
*
* @param format
*
* @return string
*/
public static String getDate(String format) {
return getStringDate(getDate(), format);
}
/**
*
*
* @param date
* Date
* @param method
*
* @return
*/
public static String getStringDate(Date date, String method) {
SimpleDateFormat sdf = new SimpleDateFormat(method);
String ret = null;
try {
ret = sdf.format(date);
} catch (Exception ex) {
LOGGER.error(ex, ex);
}
return ret;
}
/**
*
*
* @param dateStr
* 'yyyyMMdd'
* @param days
*
* @return Date
*/
public static Date getDate(String dateStr, int days) {
return getDate(getDate(dateStr, DateFormat3), days);
}
/**
* String Date
*
* @param stringDate
*
* @param method
*
* @return Date
*/
public static Date getDate(String stringDate, String method) {
SimpleDateFormat sdf = new SimpleDateFormat(method);
Date ret = null;
try {
String integerDate = stringDate.replaceAll("-", "").replaceAll("/", "").replaceAll(" ", "")
.replaceAll(" ", "").replaceAll(" ", "").replaceAll(":", ":");
ret = sdf.parse(integerDate);
} catch (Exception ex) {
LOGGER.error(ex, ex);
}
return ret;
}
/**
*
* @Title: getDateByString
* @Description:
* @Author:
* @Version: V1.00 ( )
* @CreateDate: 2018 11 8 4:33:51
* @Parameters: @param s
* @Parameters: @return
* @Parameters: @throws ParseException
* @Return Date
* @Throws
*/
public static Date getDateByString(String s) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(s);
return date;
}
/**
*
* @Title: getDatePoor
* @Description: :
* @Author:
* @Version: V1.00 ( )
* @CreateDate: 2018 8 20 10:15:35
* @Parameters: @param endDate
* @Parameters: @param nowDate
* @Parameters: @return
* @Return String
* @Throws
*/
public static String getDatePoor(Date endDate, Date nowDate) {
long nd = 1000 * 24 * 60 * 60;
long nh = 1000 * 60 * 60;
long nm = 1000 * 60;
long ns = 1000;
//
long diff = endDate.getTime() - nowDate.getTime();
//
long day = diff / nd;
//
long hour = diff % nd / nh;
//
long min = diff % nd % nh / nm;
// //
long sec = diff % nd % nh % nm / ns;
String time = "";
if (day == 0) {
if (hour == 0) {
if (min == 0) {
time = sec + " ";
} else {
time = min + " ";
}
} else {
time = hour + " " + min + " ";
}
} else {
time = day + " " + hour + " " + min + " ";
}
return time;
}
/**
*
*
* @param beginDate
*
* @param endDate
*
* @return
*/
public static int getDayCount(Date beginDate, Date endDate) {
int count = 0;
Calendar calendar = Calendar.getInstance();
calendar.setTime(beginDate);
while (calendar.getTime().before(endDate)) {
count++;
calendar.add(Calendar.DAY_OF_YEAR, 1);
}
return count;
}
/**
*
* @Title: getMonth
* @Description: +1, ,-1
* @Author:
* @Version: V1.00 ( )
* @CreateDate: 2018 12 19 3:17:42
* @Parameters: @param data
* @Parameters: @param month
* @Parameters: @return
* @Return String
* @Throws
*/
public static Date getMonth(Date data, int month) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(data);
calendar.add(Calendar.MONTH, month);
/*
* date = calendar.getTime(); return DateUtil.getStringDate(date,
* DateUtil.DateFormat2);
*/
return calendar.getTime();
}
/**
*
* @Title: getDate
* @Description: :+1 ,-1
* @Author:
* @Version: V1.00 ( )
* @CreateDate: 2018 12 19 2:11:08
* @Parameters: @param date
* @Parameters: @param days
* @Parameters: @return
* @Return Date
* @Throws
*/
public static Date getDate(Date date, int days) {
Calendar now = Calendar.getInstance();
now.setTime(date);
now.add(Calendar.DATE, days);
return now.getTime();
}
/**
*
* @Title: getTime
* @Description: /
* @Author:
* @Version: V1.00 ( )
* @CreateDate: 2018 12 19 3:26:17
* @Parameters: @param data
* @Parameters: @param month
* @Parameters: @param day
* @Parameters: @return
* @Return Date
* @Throws
*/
public static Date getTime(Date data, int month, int days) {
Date getMoth = getMonth(data, month);
Date d = getDate(getMoth, days);
return d;
}
/**
* LONG
*
* @param diff
* @return
*/
public static String LongToString(long diff) {
String showtime = "";
long oneSecond = 1000;
long oneMinute = oneSecond * 60;
long oneHour = oneMinute * 60;
long hours = diff / oneHour;
diff -= hours * oneHour;
long minutes = diff / oneMinute;
diff -= minutes * oneMinute;
long seconds = diff / oneSecond;
if (hours > 0)
showtime += hours + " ";
if (minutes > 0)
showtime += minutes + " ";
if (seconds > 0)
showtime += seconds + " ";
return showtime;
}
}
보충:
2. my sql 날짜 시간 유형
mysql (5.5) 이 지원 하 는 날짜 와 시간 유형 은 다음 과 같 습 니 다: DATETIME, TIMESTAMP、DATE、TIME、YEAR.
몇 가지 유형 은 다음 과 같다.
날짜 시간 형식
공간 을 점용 하 다
날짜 형식
최소 값
최대 치
0 값 표시
DATETIME
8 bytes
YYYY-MM-DD HH:MM:SS
1000-01-01 00:00:00
9999-12-31 23:59:59
0000-00-00 00:00:00
TIMESTAMP
4 bytes
YYYY-MM-DD HH:MM:SS
19700101080001
2038 년 어느 순간
00000000000000
DATE
4 bytes
YYYY-MM-DD
1000-01-01
9999-12-31
0000-00-00
TIME
3 bytes
HH:MM:SS
-838:59:59
838:59:59
00:00:00
YEAR
1 bytes
YYYY
1901
2155
0000
DATETIME
DATETIME 은 연월일 시 분 초 를 나타 내 는 데 사용 되 며 DATE 와 TIME 의 조합 이 며 기 록 된 연도 (위의 표 참조) 가 비교적 길다.실제 애플 리 케 이 션 에 이런 요구 사항 이 있 으 면 DATETIME 타 입 을 사용 할 수 있다.
TIMESTAMP
기 록 된 날짜 가 시간 대별 로 사 용 될 경우 TIMESTAMP 를 사용 하 는 것 이 좋다.
DATE
DATE 는 연 월 일 을 나타 내 는 데 사용 되 며, 실제 적용 값 이 연 월 일 을 저장 해 야 할 경우 DATE 를 사용 할 수 있다.
TIME
TIME 는 시 분 초 를 나타 내 는 데 사용 되 며, 실제 값 을 저장 해 야 할 때 분 초 를 사용 하면 TIME 를 사용 할 수 있다.
YEAR
YEAR 은 연 도 를 나타 내 는 데 사용 되 며 YEAR 은 2 자리 (4 자리 사용 이 가장 좋 음) 와 4 자리 형식의 해 가 있다.기본 값 은 4 자리.실제 응용 프로그램 이 연도 만 저장 된다 면 1 bytes 로 YEAR 형식 을 저장 하면 충분 합 니 다.저장 공간 을 절약 할 수 있 을 뿐만 아니 라 표 의 조작 효율 도 높 일 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.