java
Java는 날짜를 제공합니다. java.util에서 사용 가능한 클래스 패키지에서 이 클래스는 현재 날짜와 시간을 캡슐화합니다.
Date 클래스는 다음 표와 같이 두 개의 생성자를 지원합니다.
Sr.No. | 생성자 및 설명 |
---|---|
1 | 날짜( ) 이 생성자는 현재 날짜와 시간으로 개체를 초기화합니다. |
2 | 날짜(긴 밀리초) 이 생성자는 1970년 1월 1일 자정 이후 경과된 시간(밀리초)과 동일한 인수를 허용합니다. |
다음은 날짜 클래스의 메소드입니다.
Sr.No. | 방법 및 설명 |
---|---|
1 | boolean after(날짜 날짜) 호출하는 Date 객체에 date로 지정된 날짜보다 늦은 날짜가 포함되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다. |
2 | boolean before(날짜 날짜) 호출하는 Date 객체에 date로 지정된 날짜보다 이전 날짜가 포함되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다. |
3 | 객체 복제( ) 호출하는 Date 개체를 복제합니다. |
4 | int compareTo(날짜 날짜) 호출하는 객체의 값을 날짜의 값과 비교합니다. 값이 같으면 0을 반환합니다. 호출하는 개체가 날짜보다 이전인 경우 음수 값을 반환합니다. 호출하는 개체가 날짜 이후인 경우 양수 값을 반환합니다. |
5 | int compareTo(객체 개체) obj가 Date 클래스인 경우 compareTo(Date)와 동일하게 작동합니다. 그렇지 않으면 ClassCastException이 발생합니다. |
6 | 부울 같음(객체 날짜) 호출하는 Date 객체에 date로 지정된 것과 동일한 시간 및 날짜가 포함되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다. |
7 | 긴 getTime( ) 1970년 1월 1일 이후 경과된 시간(밀리초)을 반환합니다. |
8 | int 해시 코드( ) 호출 개체에 대한 해시 코드를 반환합니다. |
9 | 무효 setTime(긴 시간) 1970년 1월 1일 자정부터 경과된 시간을 밀리초 단위로 나타내는 time으로 지정된 시간과 날짜를 설정합니다. |
10 | 문자열 toString( ) 호출하는 Date 개체를 문자열로 변환하고 결과를 반환합니다. |
이것은 Java에서 현재 날짜와 시간을 얻는 매우 쉬운 방법입니다. toString()과 함께 간단한 Date 객체를 사용할 수 있습니다. 다음과 같이 현재 날짜와 시간을 출력하는 방법 -
import java.util.Date; public class DateDemo { public static void main(String args[]) { // Instantiate a Date object Date date = new Date(); // display time and date using toString() System.out.println(date.toString()); } }
이것은 다음 결과를 생성합니다 -
on May 04 09:51:52 CDT 2009
다음은 두 날짜를 비교하는 세 가지 방법입니다 -
getTime()을 사용하여 두 개체에 대해 1970년 1월 1일 자정 이후 경과된 밀리초 수를 얻은 다음 이 두 값을 비교할 수 있습니다.
before( ), after( ) 및 equals( ) 메서드를 사용할 수 있습니다. 예를 들어 12일이 18일 이전이기 때문에 new Date(99, 2, 12).before(new Date (99, 2, 18))는 true를 반환합니다.
Comparable 인터페이스에 의해 정의되고 Date에 의해 구현되는 compareTo() 메소드를 사용할 수 있습니다.
SimpleDateFormat은 로케일에 민감한 방식으로 날짜를 형식화하고 구문 분석하기 위한 구체적인 클래스입니다. SimpleDateFormat을 사용하면 날짜-시간 형식에 대한 사용자 정의 패턴을 선택하여 시작할 수 있습니다.
import java.util.*; import java.text.*; public class DateDemo { public static void main(String args[]) { Date dNow = new Date( ); SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz"); System.out.println("Current Date: " + ft.format(dNow)); } }
이것은 다음 결과를 생성합니다 -
Current Date: Sun 2004.07.18 at 04:14:09 PM PDT
시간 형식을 지정하려면 시간 패턴 문자열을 사용하십시오. 이 패턴에서 모든 ASCII 문자는 패턴 문자로 예약되며 다음과 같이 정의됩니다. -
문자 | 설명 | 예 |
---|---|---|
지 | 연대 지정자 | 광고 |
y | 4자리 연도 | 2001년 |
남 | 연도의 월 | 7월 또는 07 |
d | 월 중 일 | 10 |
h | 오전/오후 시간 (1~12) | 12 |
으 | 시(0~23) | 22 |
m | 분 단위 | 30 |
s | 초 단위 | 55 |
S | 밀리초 | 234 |
E | 요일 | 화요일 |
디 | 연중 일 | 360 |
F | 월의 요일 | 2(7월 두 번째 수요일) |
w | 연도의 주 | 40 |
여 | 주 | 1 |
아 | 오전/오후 마커 | 오후 |
k | 시(1~24) | 24 |
케이 | 오전/오후 시간 (0~11) | 10 |
z | 시간대 | 동부 표준시 |
' | 텍스트 이스케이프 | 구분자 |
" | 작은따옴표 | ` |
printf를 사용하여 날짜 및 시간 형식을 매우 쉽게 지정할 수 있습니다. 방법. t로 시작하는 두 글자 형식을 사용합니다. 다음 코드와 같이 표의 문자 중 하나로 끝납니다.
import java.util.Date; public class DateDemo { public static void main(String args[]) { // Instantiate a Date object Date date = new Date(); // display time and date String str = String.format("Current Date/Time : %tc", date ); System.out.printf(str); } }
이것은 다음 결과를 생성합니다 -
Current Date/Time : Sat Dec 15 16:37:57 MST 2012
각 부분의 형식을 지정하기 위해 날짜를 여러 번 제공해야 하는 경우 약간 어리석은 일입니다. 이러한 이유로 형식 문자열은 형식화할 인수의 인덱스를 나타낼 수 있습니다.
인덱스는 % 바로 뒤에 와야 하며 $로 끝나야 합니다.
import java.util.Date; public class DateDemo { public static void main(String args[]) { // Instantiate a Date object Date date = new Date(); // display time and date System.out.printf("%1$s %2$tB %2$td, %2$tY", "Due date:", date); } }
이것은 다음 결과를 생성합니다 -
Due date: February 09, 2004
또는 <플래그를 사용할 수 있습니다. 이전 형식 사양과 동일한 인수를 다시 사용해야 함을 나타냅니다.
import java.util.Date; public class DateDemo { public static void main(String args[]) { // Instantiate a Date object Date date = new Date(); // display formatted date System.out.printf("%s %tB %<te, %<tY", "Due date:", date); } }
이것은 다음 결과를 생성합니다 -
Due date: February 09, 2004
문자 | 설명 | 예 |
---|---|---|
c | 전체 날짜 및 시간 | 2009년 5월 4일 월요일 09:51:52 CDT |
F | ISO 8601 날짜 | 2004-02-09 |
디 | 미국 형식화된 날짜(월/일/년) | 2004년 2월 9일 |
티 | 24시간제 | 18:05:19 |
r | 12시간제 | 06:05:19 오후 |
R | 24시간제, 초 없음 | 18:05 |
예 | 4자리 연도(앞에 0 포함) | 2004년 |
y | 연도의 마지막 두 자리(앞에 0 포함) | 04 |
C | 연도의 처음 두 자리(앞에 0 포함) | 20 |
나 | 전체 월 이름 | 2월 |
ㄴ | 약칭 월 이름 | 2월 |
분 | 두 자리 월(앞에 0 포함) | 02 |
d | 두 자리 일(앞에 0 포함) | 03 |
이 | 두 자리 날짜(앞에 0 없음) | 9 |
A | 요일 전체 이름 | 월요일 |
아 | 요일 약칭 | 월 |
j | 세 자리 날짜(앞에 0 포함) | 069 |
H | 00에서 23 사이의 두 자리 시간(앞에 0 포함) | 18 |
k | 0에서 23 사이의 두 자리 시간(앞에 0 없음) | 18 |
나 | 01에서 12 사이의 두 자리 시간(앞에 0 포함) | 06 |
l | 1에서 12 사이의 두 자리 시간(앞에 0 없음) | 6 |
M | 두 자리 분(앞에 0 포함) | 05 |
S | 두 자리 초(앞에 0 포함) | 19 |
L | 3자리 밀리초(앞에 0 포함) | 047 |
N | 9자리 나노초(앞에 0 포함) | 047000000 |
P | 대문자 오전 또는 오후 마커 | 오후 |
p | 아침 또는 오후 소문자 표시 | 오후 |
z | GMT에서 RFC 822 숫자 오프셋 | -0800 |
Z | 시간대 | 태평양 표준시 |
1970-01-01 00:00:00 GMT 이후 초 | 1078884319 | |
질문 | 1970-01-01 00:00:00 GMT 이후의 밀리초 | 1078884319047 |
날짜 및 시간과 관련된 다른 유용한 클래스가 있습니다. 자세한 내용은 Java 표준 문서를 참조하세요.
SimpleDateFormat 클래스에는 지정된 SimpleDateFormat 객체에 저장된 형식에 따라 문자열을 구문 분석하려고 시도하는 parse( )와 같은 몇 가지 추가 메서드가 있습니다.
import java.util.*; import java.text.*; public class DateDemo { public static void main(String args[]) { SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); String input = args.length == 0 ? "1818-11-11" : args[0]; System.out.print(input + " Parses as "); Date t; try { t = ft.parse(input); System.out.println(t); } catch (ParseException e) { System.out.println("Unparseable using " + ft); } } }
위 프로그램의 샘플 실행은 다음 결과를 생성합니다 -
1818-11-11 Parses as Wed Nov 11 00:00:00 EST 1818
1밀리초부터 컴퓨터 수명까지 원하는 시간 동안 잠을 잘 수 있습니다. 예를 들어 다음 프로그램은 3초 동안 잠자기 상태가 됩니다. -
import java.util.*; public class SleepDemo { public static void main(String args[]) { try { System.out.println(new Date( ) + "\n"); Thread.sleep(5*60*10); System.out.println(new Date( ) + "\n"); } catch (Exception e) { System.out.println("Got an exception!"); } } }
이것은 다음 결과를 생성합니다 -
Sun May 03 18:04:41 GMT 2009 Sun May 03 18:04:51 GMT 2009
때로 시점을 밀리초 단위로 측정해야 할 수도 있습니다. 따라서 위의 예를 다시 한 번 다시 작성해 보겠습니다. -
import java.util.*; public class DiffDemo { public static void main(String args[]) { try { long start = System.currentTimeMillis( ); System.out.println(new Date( ) + "\n"); Thread.sleep(5*60*10); System.out.println(new Date( ) + "\n"); long end = System.currentTimeMillis( ); long diff = end - start; System.out.println("Difference is : " + diff); } catch (Exception e) { System.out.println("Got an exception!"); } } }
이것은 다음 결과를 생성합니다 -
Sun May 03 18:16:51 GMT 2009 Sun May 03 18:16:57 GMT 2009 Difference is : 5993
GregorianCalendar는 익숙한 일반 그레고리력을 구현하는 Calendar 클래스의 구체적인 구현입니다. 이 튜토리얼에서는 Calendar 클래스에 대해 다루지 않았습니다. 이에 대한 표준 Java 문서를 찾아볼 수 있습니다.
getInstance( ) Calendar의 메서드는 기본 로케일 및 시간대의 현재 날짜와 시간으로 초기화된 GregorianCalendar를 반환합니다. GregorianCalendar는 AD와 BC의 두 필드를 정의합니다. 이들은 그레고리력으로 정의된 두 개의 시대를 나타냅니다.
GregorianCalendar 객체를 위한 여러 생성자가 있습니다. −
Sr.No. | 생성자 및 설명 |
---|---|
1 | 그레고리안 캘린더() 기본 로케일과 함께 기본 시간대의 현재 시간을 사용하여 기본 GregorianCalendar를 구성합니다. |
2 | GregorianCalendar(int 연도, int 월, int 날짜) 기본 로케일을 사용하여 기본 시간대에 지정된 날짜를 설정하여 GregorianCalendar를 구성합니다. |
3 | GregorianCalendar(연도, 월, 날짜, 시간, 분) 기본 로케일을 사용하여 기본 시간대에 대해 설정된 날짜 및 시간으로 GregorianCalendar를 구성합니다. |
4 | GregorianCalendar(int 연도, int 월, int 날짜, int 시간, int 분, int 초) 기본 로케일을 사용하여 기본 시간대에 대해 설정된 날짜 및 시간으로 GregorianCalendar를 구성합니다. |
5 | GregorianCalendar(로케일 aLocale) 주어진 로케일의 기본 시간대의 현재 시간을 기반으로 GregorianCalendar를 생성합니다. |
6 | GregorianCalendar(시간대) 기본 로케일을 사용하여 지정된 시간대의 현재 시간을 기반으로 GregorianCalendar를 구성합니다. |
7 | GregorianCalendar(TimeZone zone, Locale aLocale) 주어진 로케일과 함께 주어진 시간대의 현재 시간을 기반으로 GregorianCalendar를 생성합니다. |
다음은 GregorianCalendar 클래스에서 제공하는 몇 가지 유용한 지원 방법의 목록입니다 -
Sr.No. | 방법 및 설명 |
---|---|
1 | void add(int 필드, int 금액) 달력의 규칙에 따라 지정된(서명된) 시간을 지정된 시간 필드에 추가합니다. |
2 | 보호된 무효 computeFields() UTC를 밀리초로 시간 필드 값으로 변환합니다. |
3 | 보호된 무효 computeTime() 캘린더 재정의 시간 필드 값을 UTC(밀리초)로 변환합니다. |
4 | 부울 등호(객체 obj) 이 GregorianCalendar를 개체 참조와 비교합니다. |
5 | int get(int 필드) 주어진 시간 필드의 값을 가져옵니다. |
6 | int getActualMaximum(int 필드) 현재 날짜가 주어지면 이 필드가 가질 수 있는 최대값을 반환합니다. |
7 | int getActualMinimum(int 필드) 현재 날짜가 주어지면 이 필드가 가질 수 있는 최소값을 반환합니다. |
8 | int getGreatestMinimum(int 필드) 다양한 경우 지정된 필드에 대한 가장 높은 최소값을 반환합니다. |
9 | 날짜 getGregorianChange() 그레고리력 변경 날짜를 가져옵니다. |
10 | int getLeastMaximum(int 필드) 다양한 경우 지정된 필드에 대해 가장 낮은 최대값을 반환합니다. |
11 | int getMaximum(int 필드) 주어진 필드의 최대값을 반환합니다. |
12 | 날짜 getTime() 이 캘린더의 현재 시간을 가져옵니다. |
13 | 긴 getTimeInMillis() 이 캘린더의 현재 시간을 long으로 가져옵니다. |
14 | 시간대 getTimeZone() 시간대를 가져옵니다. |
15 | int getMinimum(int 필드) 주어진 필드의 최소값을 반환합니다. |
16 | int hashCode() hashCode를 재정의합니다. |
17 | 부울 isLeapYear(int 연도) 주어진 연도가 윤년인지 확인합니다. |
18 | 무효 롤(int 필드, 부울 업) 더 큰 필드를 변경하지 않고 주어진 시간 필드에서 단일 시간 단위를 더하거나 뺍니다(위/아래). |
19 | void set(int 필드, int 값) 주어진 값으로 시간 필드를 설정합니다. |
20 | void set(int year, int month, int date) 년, 월, 날짜 필드의 값을 설정합니다. |
21 | void set(int year, int month, int date, int hour, int minute) 년, 월, 일, 시, 분 필드의 값을 설정합니다. |
22 | void set(int 연도, int 월, int 날짜, int 시간, int 분, int 초) 년, 월, 일, 시, 분, 초 필드의 값을 설정합니다. |
23 | 무효 setGregorianChange(날짜 날짜) GregorianCalendar 변경 날짜를 설정합니다. |
24 | 무효 setTime(날짜 날짜) 지정된 날짜로 이 캘린더의 현재 시간을 설정합니다. |
25 | 무효 setTimeInMillis(긴 밀리초) 주어진 long 값에서 이 캘린더의 현재 시간을 설정합니다. |
26 | 무효 setTimeZone(시간대 값) 주어진 시간대 값으로 시간대를 설정합니다. |
27 | 문자열 toString() 이 달력의 문자열 표현을 반환합니다. |
import java.util.*; public class GregorianCalendarDemo { public static void main(String args[]) { String months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; int year; // Create a Gregorian calendar initialized // with the current date and time in the // default locale and timezone. GregorianCalendar gcalendar = new GregorianCalendar(); // Display current time and date information. System.out.print("Date: "); System.out.print(months[gcalendar.get(Calendar.MONTH)]); System.out.print(" " + gcalendar.get(Calendar.DATE) + " "); System.out.println(year = gcalendar.get(Calendar.YEAR)); System.out.print("Time: "); System.out.print(gcalendar.get(Calendar.HOUR) + ":"); System.out.print(gcalendar.get(Calendar.MINUTE) + ":"); System.out.println(gcalendar.get(Calendar.SECOND)); // Test if the current year is a leap year if(gcalendar.isLeapYear(year)) { System.out.println("The current year is a leap year"); }else { System.out.println("The current year is not a leap year"); } } }
이것은 다음 결과를 생성합니다 -
Date: Apr 22 2009 Time: 11:25:27 The current year is not a leap year
Calendar 클래스에서 사용할 수 있는 상수의 전체 목록은 표준 Java 설명서를 참조하십시오.
java
자바 8 질문 및 답변 다양한 인증 시험을 준비하는 학생과 전문가를 돕기 위해 특별히 고안되었습니다. 및 취업 면접 . 이 섹션은 인터뷰 질문 및 객관식 질문(MCQ)의 유용한 모음과 적절한 설명과 함께 답변을 제공합니다. SN 질문/답변 유형 1 자바 8 인터뷰 질문 이 섹션에서는 정답을 찾기 전에 먼저 답을 찾아볼 수 있도록 상자에 숨겨진 Java 8 인터뷰 질문 모음을 제공합니다. 2 자바 8 온라인 퀴즈 이 섹션은 정답 및 설명과 함께 한 페이지에 Java 8 MCQ(객관식 질문)의 훌륭한 모음을 제공합니다. 올바른
구성품 및 소모품 Arduino UNO × 1 DHT11 온도 및 습도 센서(4핀) × 1 Maxim 통합 DS3231 × 1 저항 10k 옴 × 1 Adafruit 128x64 OLED 그래픽 디스플레이 × 1 브레드보드(일반) × 1 점퍼 와이어(일반) × 15 이 프로젝트 정보 온도와 습도와 함께 시간, 날짜를 표시할 수 있는 인터페이스를 만들고 싶었던 적이 있습니까? 생각보다