getTime()
: 저장된 시간을 반환 (ms 단위 숫자)setTime(long date)
: 주어진 시간으로 저장된 값을 변경 (ms 단위 숫자)format(Date date)
: 주어진 형식대로 시간(Date)을 시간(String)으로 변환parse(String date)
: 주어진 형식으로 들어온 시간(String)을 시간(Date)으로 변환parse()
메서드를 사용할 때는 예외처리를 반드시 해주어야 한다.import java.text.*;
import java.util.*;
class TimeFormatting {
public static void main(String[] args) {
Date d = new Date();
System.out.println(d.getTime());
d.setTime(0);
System.out.println(d.getTime());
// <Date 클래스>
// 객체가 만들어질 때 현재 시간(데이터 단위 long)을 ms(밀리초) 단위로 저장 (1970.01.01 AM 09:00:00 기준)
// getTime() : 저장된 시간을 반환 (ms 단위 숫자)
// setTime(long date) : 주어진 시간으로 저장된 값을 변경 (ms 단위 숫자)
// 2022.12.05 오전 09:23:55
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd aa hh:mm:ss");
String strDate = sdf.format(d);
System.out.println(strDate);
try {
String myDate = "2002.10.05 오후 09:30:15";
Date someday = sdf.parse(myDate);
System.out.println(someday.getTime());
} catch(ParseException e) {
e.printStackTrace();
}
// <SimpleDateFormat 클래스>
// 데이터 형식(시간)을 지정 (시간(Date) <-> 시간(String))
// format(Date date) : 주어진 형식대로 시간(Date)을 시간(String)으로 변환
// parse(String date) : 주어진 형식대로 들어온 시간(String)을 시간(Date)으로 변환
// parse() 메서드를 사용할 때는 예외처리를 반드시 해주어야 한다. (ParseException = 체크예외)
}
}
- 객체 만들지 않고 String으로 바로 변환 :
String.format()
- 시간 차이 구하기
: Date로 변환 후 차를 구하고, 원하는 단위가 나올 때까지 나눈다.
"yyyy.MM.dd"
->parse()
,getTime()
->difference / (1000 * 60 * 60 * 24)
import java.text.*;
import java.util.*;
class MiniTest1 {
public static void getD_day(int year, int month, int day) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
try {
long goal = sdf.parse(String.format("%d.%d.%d", year, month, day)).getTime();
long today = sdf.parse(sdf.format(new Date())).getTime();
long diff;
String beforeOrAfter = "후";
if(goal > today) {
diff = goal - today;
} else {
diff = today - goal;
beforeOrAfter = "전";
}
long days = diff / (1000 * 60 * 60 * 24);
System.out.printf("%d일 %s입니다.\n", days, beforeOrAfter);
} catch(ParseException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
getD_day(2022, 12, 25);
getD_day(2021, 12, 31);
getD_day(2023, 3, 1);
}
}
이클립스는 자바 파일을 바로 만들어 사용하지 않음
프로젝트 - 자바 파일 순서로 만들어 사용함
(프로젝트는 하나의 프로그램 단위라 생각하면 됨)
perspective : '환경' 의미
preference : 설정 변경
패키지 : 필수 (지금은 도메인 뒤집어서 쓰기)
archive file : 압축파일 불러올 때
file system : 압축 안 된 파일 불러올 때
??? : 워크스페이스에 있는 파일 불러올 때
파일 불러올 때 경로 (.classpath, .project) 는 체크하지 않는다.
(파일 경로가 다른 경우 오류가 나게 됨)
package kr.ac.green;
/*
* ctrl + s : save(compile)
* ctrl + f11 : run
* ctrl + m : 창 최대화, 복원
* ctrl + n : 새로만들기
* ctrl + f6 : 에디터 변경
* ctrl + d : 줄삭제
* ctrl + / : 주석처리/해제
ctrl + shift + f : 자동 줄맞춤
ctrl + shift + o : 자동 임포트
alt + shift + s -> c : 기본생성자
alt + shift + s -> o : 생성자(파라미터)
alt + shift + s -> r : getter/setter
alt + shift + s -> s : toString
main + ctrl + space : main 메서드 단축키
sysout + ctrl + space : System.out.println();
alt + shift + t -> n : 이름 한 번에 변경
(alt -> t -> n도 가능)
ctrl + click : 클래스, 메서드가 정의된 곳으로 커서 이동