JAVA에서 자주 사용하는 시간 조작에 대한 상세한 설명[실용]
1. 문자열을 날짜로 변환
/**
*
* @param dateStr
* @param dateFormat yyyy-MM-dd/yyyy-MM-dd HH:mm:ss
*/
public static Date toDate(String dateStr, SimpleDateFormat dateFormat) throws ParseException{
Date date = null;
try {
date = dateFormat.parse(dateStr);
} catch (ParseException e) {
logger.debug("Fail to convert String to Date, {}", dateStr);
}
return date;
}
2. 스탬프 날짜
/**
*
* @param date
* @return
*/
public static String dateToTime(long time, SimpleDateFormat dateFormat) throws ParseException{
String data = null;
try {
dateFormat.format(new Date(time*1000));
} catch (Exception e) {
logger.debug("Fail to convert long to Date, {}", time);
}
return data;
}
3. 날짜를 문자열로 포맷
/**
*
* @param date
* @param dateFormat
* @return
* @throws ParseException
*/
public static String toString(Date date, SimpleDateFormat dateFormat) throws ParseException{
return dateFormat.format(date);
}
4. 지정된 날짜를 얻기 전이나 그 후의 날짜, 10분 초는 00:00:00
/**
*
* @param date
* @param num ,
* @return yyyy-MM-dd 00:00:00
*/
public static Date getSpecificDate(Date date, int num){
Calendar todayCal = Calendar.getInstance();
todayCal.setTime(date);
Calendar c = Calendar.getInstance();
c.set(todayCal.get(Calendar.YEAR), todayCal.get(Calendar.MONTH), todayCal.get(Calendar.DAY_OF_MONTH) + num, 0, 0, 0);
return c.getTime();
}
5. 지정된 날짜 이전 또는 이후의 날짜를 가져오면 분초가 현재
/**
*
* @param date
* @param num ,
* @return yyyy-MM-dd +
*/
public static Date getSpecificDateAndHhMmSs(Date date,int num){
Calendar c = Calendar.getInstance();
c.setTime(date);
int day=c.get(Calendar.DATE);
c.set(Calendar.DATE,day - num);
return c.getTime();
}
6. 시간 형식의 시간 문자열을 시간, 분으로 변환
/**
* time 、
* HH-mm-ss -->> HH-mm
* @param time
* @return
*/
public static String timeToHHMM(String time){
return time.substring(0, time.length() - 3);
}
7. 어떤 날짜를 얻었을 때
/**
* 、
* @param date
* @return HH-mm
*/
public static String getHM(Date date){
Calendar ca = Calendar.getInstance();
ca.setTime(date);
Integer hour = ca.get(Calendar.HOUR_OF_DAY);//
Integer minute = ca.get(Calendar.MINUTE);//
String rs_hour = hour.toString();
String rs_minute = minute.toString();
if (rs_hour.length() == 1){
rs_hour = "0" + hour;
}
if(rs_minute.length() == 1){
rs_minute = "0" + minute;
}
return rs_hour + ":" + rs_minute;
}
8.time 형식의 시간 문자열 -->> 0시에 시작하는 초
/**
* time -->>
* @param time HH-mm / HH-mm-ss
* @return
*/
public static Integer timeToSeconds(String time){
String[] timeSplit = null;
int hours = 0,minutes = 0,seconds = 0;
try {
timeSplit = time.split(":");
if (timeSplit.length == 2) {
hours = Integer.valueOf(timeSplit[0])*60*60;
minutes = Integer.valueOf(timeSplit[1])*60;
}else if(timeSplit.length == 3){
hours = Integer.valueOf(timeSplit[0])*60*60;
minutes = Integer.valueOf(timeSplit[1])*60;
seconds = Integer.valueOf(timeSplit[2]);
}else{
logger.debug("Fail to convert the time, {}", time);
}
} catch (Exception e) {
logger.debug("Fail to convert the time, {}", time);
throw e;
}
return hours + minutes + seconds;
}
9.0시부터 초회전 시간-->H-mm-ss
/**
* -->> HH-mm-ss
* @param durationSeconds
* @return
*/
public static String getDuration(int durationSeconds){
int hours = durationSeconds /(60*60);
int leftSeconds = durationSeconds % (60*60);
int minutes = leftSeconds / 60;
int seconds = leftSeconds % 60;
StringBuffer sBuffer = new StringBuffer();
sBuffer.append(addZeroPrefix(hours));
sBuffer.append(":");
sBuffer.append(addZeroPrefix(minutes));
sBuffer.append(":");
sBuffer.append(addZeroPrefix(seconds));
return sBuffer.toString();
}
public static String addZeroPrefix(int number){
if(number < 10)
return "0"+number;
else
return ""+number;
}
10. 두 날짜의 차이를 비교한 초
/**
*
* @param startDate
* @param endDate
* @return
*/
public static int getTimeSeconds(Date startDate,Date endDate) {
long a = endDate.getTime();
long b = startDate.getTime();
return (int)((a - b) / 1000);
}
11. 두 시간대의 교차 여부를 판단한다
/**
*
* @param startDate
* @param endDate
* @return
*/
public static int getTimeSeconds(Date startDate,Date endDate) {
long a = endDate.getTime();
long b = startDate.getTime();
return (int)((a - b) / 1000);
}
12. 지정한 날짜를 얻는 것은 월요일부터 일요일까지(1-7)
/**
* (1-7 )
* @return
*/
public static int DayOfWeek(Date date){
Calendar now = Calendar.getInstance();
now.setTime(date);
boolean isFirstDay = (now.getFirstDayOfWeek() == Calendar.SUNDAY);
int weekday = now.get(Calendar.DAY_OF_WEEK);
if(isFirstDay){
weekday = weekday - 1;
if(weekday == 0){
weekday = 7;
}
}
return weekday;
}
이상은 본문의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 일정한 도움을 줄 수 있는 동시에 저희를 많이 지지해 주시기 바랍니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.