본문 바로가기
java&eclipse 코딩 알고리즘/20231206

DateTimeTest

by 몽상크리에이터 2023. 12. 14.

package k20231206;

 

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.Locale;

 

public class DateTimeTest {

 

public static void main(String[] args) {

 

// 현재 컴퓨터 시스템의 날짜와 시간을 얻어온다

Date date = new Date();

System.out.println(date);

 

// 날짜, 시간 서식 지정하기

// 서식문자를 제외한 나머지 문자는 입력한 그대로 출력된다.

// SimpleDateFormat sdf = new SimpleDateFormat("날짜/시간 서식");

SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 MM월 dd일 E요일 HH시 mm분 ss초");

// 작성한 서식은 format() 메소드를 사용해서 적용한다

System.out.println(sdf.format(date));

 

SimpleDateFormat sdf2 = new SimpleDateFormat("yy.MM.dd(E) a h:mm:ss.SSS");

System.out.println(sdf2.format(date));

// 생성자 2번째 인수로 Locale을 지정할 수 있다.

SimpleDateFormat sdf3 = new SimpleDateFormat("E MMMM dd yyyy a h:mm:ss.SSS", Locale.US);

System.out.println(sdf3.format(date));

System.out.println("=========================================================");

 

// 날짜, 시간 데이터에서 년, 월, 일, 시, 분, 초 얻어오기 Get메소드 // 집어넣기 Set메소드

// Date 클래스는 1900년 1월 1일 자정을 기준으로 날짜 데이터를 처리하게끔 설계가 되었다.

// 년도를 얻어와서 1900을 더해야 한다.

System.out.println("년: " + (date.getYear() + 1900));

// 월을 0~11로 처리하므로 월은 얻어와서 1을 더해야 한다

System.out.println("월: " + (date.getMonth() + 1));

System.out.println("일: " + date.getDate());

System.out.println("요일: " + date.getDay());

System.out.println("시: " + date.getHours());

System.out.println("분: " + date.getMinutes());

System.out.println("초: " + date.getSeconds());

 

// getTime(): 1970년 1월 1일 자정부터 클래스 객체에 저장된 시간까지 지나온 시간을 밀리초 단위로 얻어온다 => 13자리 정수

System.out.println(date.getTime());

System.out.printf("밀리초: %03d\n" , date.getTime() % 1000);

// getTimeOffset() : 영국 시간과 현지 시간의 차이를 분 단위로 얻어온다.

System.out.println(date.getTimezoneOffset());

System.out.println("=========================================================");

 

Calendar calendar = Calendar.getInstance();

System.out.println(calendar);

// System.out.println(sdf2.format(calendar)); //예외 발생

// Calendar 서식 지정 getTime 메소드 실행 후 서식지정

System.out.println(calendar.getTime());

System.out.println(sdf2.format(calendar.getTime())); //예외 발생

 

System.out.println("년: " + calendar.get(Calendar.YEAR));

System.out.println("월: " + calendar.get(Calendar.MONTH)+1);

System.out.println("일: " + calendar.get(Calendar.DATE));

System.out.println("일: " + calendar.get(Calendar.DAY_OF_MONTH));

 

// 일(1), 월(2), 화(3), 수(4), 목(5), 금(6), 토(7)

System.out.println("일: " + calendar.get(Calendar.DAY_OF_WEEK));

System.out.println("시(12시간): " + calendar.get(Calendar.HOUR));

System.out.println("일(24시간): " + calendar.get(Calendar.HOUR_OF_DAY));

System.out.println("분: " + calendar.get(Calendar.MINUTE));

System.out.println("초: " + calendar.get(Calendar.SECOND));

System.out.println("밀리초: " + calendar.get(Calendar.MILLISECOND));

System.out.println("=========================================================");

 

// currentTimeMillis(): 1970년 1월 1일 자정부터 이 메소드가 실행되는 시간까지 지나온 시간을 밀리초 단위로 얻어온다 => 13자리 정수

System.out.println(System.currentTimeMillis());

 

// currentTimeMillis() 메소드는 13자리 정수이므뢰 int 타입의 변수에 저장할 수 없고 long 타입의 변수에 저장해 사용한다.

// int start = System.currentTimeMillis(); //에러

long start = System.currentTimeMillis(); //시작 시간

 

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

 

long end = System.currentTimeMillis(); //종료 시간

System.out.println("실행 시간: " + (end - start) / 1000. + "초");

// currentTimeMillis() 메소드로 연산할 경우 일반적 사칙연산은 문제가 생기지 않음.

// 연산결과에 SimpleDateFormat 클래스 객체를 사용해 서식을 지정하면 offset 값이 포함된 시간으로 서식적용

// => 연산 결과에서 offset 값을 빼면 된다.

SimpleDateFormat sdf4 = new SimpleDateFormat("실행 시간: HH:mm:ss.SSS초");

System.out.println(sdf4.format(end-start));

System.out.println(sdf4.format(end-start-32400000));

}

}

'java&eclipse 코딩 알고리즘 > 20231206' 카테고리의 다른 글

SosooTest  (0) 2023.12.14
SooinsooTest  (0) 2023.12.14
ClassIncludeTest  (0) 2023.12.14
DateTimeTest2  (0) 2023.12.14
ConvertTest4  (0) 2023.12.14