개발을 하다 보면 성능의 한 측면에서 시간이 얼마나 걸리는지 테스트를 정말 정말 많이 하게 되는데요😂
우선 현재시간을 아는것이 기본이겠죠?
현재시간을 알 수있는 방법에는 아래와 같이 Calendar.getInstance().getTime(), new Date(), System.currentTimeMillis() 이렇게 3가지가 있어요.
import java.util.Calendar;
import java.util.Date;
public class SimpleDateFormat_Sample {
public static void main(String[] args) {
System.out.println(Calendar.getInstance().getTime());
System.out.println(new Date());
System.out.println(System.currentTimeMillis());
}
}
위와 같이 작성하면 아래와 같이 현재시간을 알려주는 날짜가 나와요.
Tue Sep 15 20:37:35 KST 2020
Tue Sep 15 20:37:35 KST 2020
1600169855236
하지만 Calendar.getInstance().getTime()는 객체 생성뿐만 아니라 윤달도 포함하고 있어서 나머지 두 가지보다 현재시간을 빠르게 표현하는 성능면에서 떨어진다고 해요😮 (new Date() 또한 객체 생성을 하지만, System.currentTimeMillis()와 비교하였을때 거의 차이가 없어요)
그럼 나머지 두 가지 new Date(), System.currentTimeMillis()를 SimpleDateFormat이라는 것을 사용하여 우리가 좀 더 보기 편한 날짜 형식으로 바꿔서 출력해보도록해요!
import java.text.SimpleDateFormat;
public class SimpleDateFormat_Sample {
public static void main(String[] args) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss.SSS");
}
}
위와 같이 SimpleDateFormat이라는 객체를 생성하여 파라미터 값으로 "YYYY-MM-DD HH:mm:ss.SSS"를 주면 나는 현재 시간을 2020-09-15 20:40:25.486 이렇게 밀리세컨드초까지 나타내어 주겠다 라는 뜻이에요!
그럼 이제 틀을 만들었으니 해당 틀에 현재 날짜를 넣어주어야겠죠?
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormat_Sample {
public static void main(String[] args) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss.SSS");
System.out.println(simpleDateFormat.format(new Date()));
System.out.println(simpleDateFormat.format(System.currentTimeMillis()));
}
}
위와 같이 SimpleDateFormat 객체를 원하는 형식으로 만들고 생성된 simpleDateFormat 인스턴스에 .format() 이라는 메소드로 new Date()와 System.currentTimeMillis()를 넣어주면 아래와 같이 원하는 형식으로 나오는 거 보이시죠?
(0.001초 차이가 나는데 이건 실행 순서와도 연관이 있으니 같다고 보시면 돼요!)
2020-09-259 20:42:49.938
2020-09-259 20:42:49.939
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'Java' 카테고리의 다른 글
Item25. 톱레벨 클래스는 한 파일에 하나만 담으라. (0) | 2022.05.24 |
---|---|
SOLID 좋은 객체지향 설계의 5가지 원칙 (0) | 2022.05.19 |
다형성, 오버라이딩, 오버로딩 (0) | 2022.05.19 |
SNMP GETBULK, SUBTREE 시간 성능 Test (0) | 2020.09.16 |
[Java] static (0) | 2020.06.30 |
댓글