java 시간 관련 처리 소결
Calendar time=Calendar.getInstance();
time.clear();
time.set(Calendar.YEAR,year); //year int
time.set(Calendar.MONTH,i-1);// ,Calendar 0
int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//
: set , clear ,
2.Calendar 및 Date 전환(1) Calendar가 Date로 전환됩니다
Calendar cal=Calendar.getInstance();
Date date=cal.getTime();
(2) 날짜가 Calendar로 바뀝니다
Date date=new Date();
Calendar cal=Calendar.getInstance();
cal.setTime(date);
3.출력 날짜 시간을 포맷합니다
Date date=new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String time=df.format(date);
System.out.println(time);
4.일 년 중 몇 주일을 계산하다(1) 어느 날이 일년 중 몇 주일인지 계산한다
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.DAY_OF_MONTH, 3);
int weekno=cal.get(Calendar.WEEK_OF_YEAR);
(2) 일 년 중 몇 주일이 며칠인지 계산한다.출력: 2006-01-025.add() 및 roll() 사용법(상용하지 않음)
(1)add() 방법
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.WEEK_OF_YEAR, 1);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println(df.format(cal.getTime()));
출력: 2006-08-30 2006-09-03(2)roll 방법
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.DAY_OF_MONTH, 3);
cal.add(Calendar.DATE, -4);
Date date=cal.getTime();
System.out.println(df.format(date));
cal.add(Calendar.DATE, 4);
date=cal.getTime();
System.out.println(df.format(date));
출력: 2006-09-29 2006-09-03을 보면 알 수 있듯이 롤() 방법은 이달 안에 순환하고 일반적으로add() 방법을 사용한다.6. 임의의 시간 사이의 간격 일수를 계산합니다(이것은 비교적 자주 사용됩니다). (1) Calendar 객체로 전달됩니다
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.DAY_OF_MONTH, 3);
cal.roll(Calendar.DATE, -4);
date=cal.getTime();
System.out.println(df.format(date));
cal.roll(Calendar.DATE, 4);
date=cal.getTime();
System.out.println(df.format(date));
(2) Date 객체로 전송합니다
public int getIntervalDays(Calendar startday,Calendar endday)...{
if(startday.after(endday))...{
Calendar cal=startday;
startday=endday;
endday=cal;
}
long sl=startday.getTimeInMillis();
long el=endday.getTimeInMillis();
long ei=el-sl;
return (int)(ei/(1000*60*60*24));
}
(3) 간격 일수를 정확하게 계산하는 방법을 개선한다
public int getIntervalDays(Date startday,Date endday)...{
if(startday.after(endday))...{
Date cal=startday;
startday=endday;
endday=cal;
}
long sl=startday.getTime();
long el=endday.getTime();
long ei=el-sl;
return (int)(ei/(1000*60*60*24));
}
주의: 위의 방법을 통해 메일박스가 3주 안에 받은 메일(현재 시스템 시간 얻기 - 3주 전 시간 얻기)을 찾아내려면 수신 시간에 맞추어 롱으로 설치하는 것이 가장 좋다. 예를 들어 1년 전 날짜(밀리초 변환 주의)
public int getDaysBetween (Calendar d1, Calendar d2) ...{
if (d1.after(d2)) ...{
java.util.Calendar swap = d1;
d1 = d2;
d2 = swap;
}
int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
int y2 = d2.get(Calendar.YEAR);
if (d1.get(Calendar.YEAR) != y2) ...{
d1 = (Calendar) d1.clone();
do ...{
days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);//
d1.add(Calendar.YEAR, 1);
} while (d1.get(Calendar.YEAR) != y2);
}
return days;
}
7. String 및 Date, Long 간 상호 변환문자열은 시간 형식으로 바뀐다. (문자열은 임의의 형식일 수 있으며, SimpleDateFormat의 형식과 일치하기만 하면 된다.) 보통 우리가 시간의 경계를 취할 때substring에서 구체적인 시간을 비교한다
java.util.Date myDate=new java.util.Date();
long myTime=(myDate.getTime()/1000)-60*60*24*365;
myDate.setTime(myTime*1000);
String mDate=formatter.format(myDate);
8. 시간을 통해 시간을 구하다년 월 주구 날짜.요일입니다
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("M/dd/yyyy hh:mm:ss a",java.util.Locale.US);
java.util.Date d = sdf.parse("5/13/2003 10:31:37 AM");
long dvalue=d.getTime();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String mDateTime1=formatter.format(d);
9. java와 구체적인 데이터베이스 결합웹 응용 프로그램을 개발하는 과정에서 서로 다른 데이터베이스 날짜 유형에 대해 우리는 프로그램에서 날짜 유형에 대해 다양한 변환을 해야 한다.만약에 대응하는 데이터베이스 데이터가oracle의 Date 형식이라면 연월일만 있으면 자바를 사용할 수 있습니다.sql.Date 형식, MSsqlserver 데이터베이스에 대응하는 DateTime 형식, 즉 연월일 시분초가 필요한 경우java를 선택하십시오.sql.Timestamp 형식은 날짜 형식을 dateFormat으로 정의할 수 있습니다. 문자열을 바꾸면 됩니다.
class Datetest{*method는 문자열 형식의 날짜를 timestamp(시간 스탬프 java.sql.Timestamp)*@param dateString에서 timestamp로 변환해야 하는 문자열*@return dataTime timestamp
SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM F E");
java.util.Date date2= formatter2.parse("2003-05 5 ");
SimpleDateFormat formatter3 = new SimpleDateFormat("yyyy-MM-dd");
String mydate2=formatter3.format(date2);
*method는 문자열 형식의 날짜를 날짜(java.sql.Date)*@param dateString에서 날짜로 변환해야 하는 문자열*@return dataTime Date
mydate= myFormatter.parse("2001-1-1");
SimpleDateFormat formatter4 = new SimpleDateFormat("E");
String mydate3=formatter4.format(mydate);
public static void main (String []args) {Date da = new Date (); 주의: 이 곳에서 da.getTime () 는 롱형 값 System.out.println (da.getTime () 입니다.날짜 날짜에서 timestamp로 변환
첫 번째 방법: new Timestamp(long) Timestamp t = new Timestamp(new Date()를 사용합니다.getTime());System.out.println(t);
두 번째 방법: Timestamp(int year, int month, int date, int hour, int minute, int second, int nano)를 사용합니다
public final static java.sql.Timestamp string2Time(String dateString)
throws java.text.ParseException {
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS", Locale.ENGLISH);//
//dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp ,timeDate.getTime() long
return dateTime;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.