반응형
- C23날짜
- C2301날짜_개념
- 날짜_기본이론1
package C2301날짜_개념;
import java.text.SimpleDateFormat;
import java.util.Date;
public class 날짜_기본이론1 {
public static void main(String[] args) {
// 현재 컴퓨터 시스템의 날짜와 시간을 얻어온다.
Date date = new Date();
System.out.println(date); // Thu Sep 28 22:55:06 KST 2023
/*
* [1] 날짜 및 시간 출력 서식 지정 방법
* . 날짜 및 시간 서식에 사용되는 영문자를 제외한 나머지 문자는 입력하는 그대로 출력된다.
* . Date date = new Date();
* . SimpleDateFormat sdf = new SimpleDateFormat("날짜 및 시간 서식");
* [2] 날짜 및 시간 서식 적용 방법
* . sdf.format(date);
* [3] 날짜 및 시작 출력 서식 문자의 종류
* . 구글에서 "simpledateformat 날짜 형식" 라고 검색하기
*/
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy년 MM월 dd일 E요일 a hh시 mm분 ss초");
System.out.println(sdf1.format(date));
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy.MM.dd(E) HH:mm");
System.out.println(sdf2.format(date));
/*
* System.currentTimeMillis()
* . 1970년 1월 1일 자정 부터 이 메소드가 실행되는 순간까지 지나온 시간을 밀리초(1/1000초) 단위로 얻어온다.
* . 13자리의 숫자를 얻어오기 때문에 int로 처리하면 에러가 발생되므로 long로 처리해야 한다.
*/
// int time = System.currentTimeMillis(); // 에러 발생
long time = System.currentTimeMillis();
System.out.println(time);
System.out.println(sdf2.format(time));
}
}
- 날짜_기본이론2_싱글톤패턴
- 디자인패턴
- 싱글톤패턴
- 클래스를 한개만 만드는 방법
- 1. 생성자를 잠근다. new를 못함 private 막음
- 2. static을 써서 클래스 내부에서 new를 한다. private으로 막음
- 3. get함수만 public으로 만들어서 가져다가 쓸 수 있게 한다.
- set을 안 만들어서 new가 안됨
package C2301날짜_개념;
class MySingleTonDAO {
// 1. 생성자를 private 잠근다.
private MySingleTonDAO() {}
// 2. 내부에서 new를 통해 객체를 생성한다.
private static MySingleTonDAO instance = new MySingleTonDAO();
// 3. instance변수에 접근할 수 있는 메서드를 생성한다.
public static MySingleTonDAO getInstance() { return MySingleTonDAO.instance; }
}
public class 날짜_기본이론2_싱글톤패턴 {
// 싱글톤 패턴이란
// 과거 DAO 클래스들이 static 을 이용해 편리하게 사용했으나
// 모든 변수와 함수에 static 을 붙여야만했다.
// class 자체에 static 을 붙이면 좋겠지만
// class 에는 static 을 붙일수없기때문에 (문법적으로)
// 그와 유사한 형태로 마치 class 에 붙인거와 같은 효과가 난다.
// === 만드는법 ===
// 1) 생성자를 private 으로 만든다 . 그러면 new 를 할 수 없다.
// 2) 내부에서 new 를 한다. static 필요
// 3) public 을 get함수에만 적용한다. static 필요
public static void main(String[] args) {
// MySingleTonDAO dao = new MySingleTonDAO(); // 오류발생
MySingleTonDAO d1 = MySingleTonDAO.getInstance();
MySingleTonDAO d2 = MySingleTonDAO.getInstance();
MySingleTonDAO d3 = MySingleTonDAO.getInstance();
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
}
}
- 날짜_기본이론2_싱글톤패턴2
package C2301날짜_개념;
class Member {}
class MemberDAO {
static public MemberDAO instance = new MemberDAO();
public void insert() {}
public void delete() {}
}
class User {}
class UserDAO {
// 1. new 를 못하게 private 으로 생성자 설정한다.
private UserDAO() {}
// 2. private 으로 클래스내부에서 new 를 한다.
private static UserDAO instance = new UserDAO();
// 3. set은 만들지않는다. 오로지get만 만들어서 접근만할수있게한다.
public static UserDAO getInstance() {
return UserDAO.instance;
}
public void insert() {}
}
public class 날짜_기본이론2_싱글톤패턴2 {
public static void main(String[] args) {
MemberDAO.instance.delete();
MemberDAO.instance = new MemberDAO(); // 이런문제점이 있다.
// 싱글턴 만드는법
// UserDAO user = new UserDAO();
UserDAO.getInstance().insert();
}
}
- 날짜_기본이론3_칼렌더
package C2301날짜_개념;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class 날짜_기본이론3_칼렌더 {
/*
* # Date 클래스의 활용
* . Date 클래스 객체에서 년, 월, 일, 시, 분, 초를 얻어오려면
* . get으로 시작하는 메소드를 사용한다.
* . Date 클래스는 1900년을 기준으로 날짜를 처리한다.
*/
public static void main(String[] args) {
Date date = new Date();
// 작대기가 그어진함수는 곧 사용금지될 함수들이다. date를 사용하지말고
// Calendar 클래스 사용을 권한다.
System.out.println("년 : " + (date.getYear() + 1900));
System.out.println("월 : " + (date.getMonth() + 1));
System.out.println("일 : " + date.getDate());
System.out.println("요일 : "+ date.getDay());
// 일요일(0), 월요일(1), ..., 토요일(6)
System.out.println("시 : " + date.getHours());
System.out.println("분 : " + date.getMinutes());
System.out.println("초 : " + date.getSeconds());
/*
* Calendar 클래스는 singleton 패턴으로 설계된 클래스이므로 객체를 만들어 사용할 수 없다.
* 객체를 만들어 사용할 수 없는 클래스는 클래스 내부에 자신의 클래스로 만든 객체를 가지고 있고
* 내부에 가지고 있는 클래스 객체를 얻어오는 메소드를 실행해서 사용한다.
*/
System.out.println("-----------------------------");
// Calendar calendar = new Calendar(); // new를 사용해서 객체를 생성할 수 없다.
Calendar calendar = Calendar.getInstance(); // getInstance() : 클래스 내부에서 선언된 자신의 클래스 객체를 얻어온다.
System.out.println(calendar);
/*
* Calendar 클래스 객체는 날짜 및 시간 정보 이외의 더 많은 정보를 가지고 있으므로
* SimpleDateFormat 클래스 객체를 이용해 서식을 지정하려면
* getTime() 메소드로 날짜와 시간만 얻어온 후 적용시켜야 한다.
*/
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd(E) HH:mm:ss");
System.out.println(sdf.format(calendar.getTime()));
System.out.println(Calendar.YEAR);
System.out.println("년 : " + calendar.get(Calendar.YEAR));
System.out.println("월 : " + (calendar.get(Calendar.MONTH) + 1));
System.out.println("일 : " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("일 : " + calendar.get(Calendar.DATE));
// 일요일(1), 월요일(2), ..., 토요일(7)
System.out.println("요일 : " + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("시 : " + calendar.get(Calendar.HOUR)); // 12시각
System.out.println("시 : " + calendar.get(Calendar.HOUR_OF_DAY)); // 24시각
System.out.println("분 : " + calendar.get(Calendar.MINUTE));
System.out.println("초 : " + calendar.get(Calendar.SECOND));
}
}반응형