산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> 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

날짜 비교

다음은 두 날짜를 비교하는 세 가지 방법입니다 -

SimpleDateFormat을 사용한 날짜 형식 지정

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

간단한 DateFormat 형식 코드

시간 형식을 지정하려면 시간 패턴 문자열을 사용하십시오. 이 패턴에서 모든 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를 사용한 날짜 형식

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 클래스

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

  1. C# 클래스 및 개체
  2. Python에서 현재 날짜와 시간을 얻는 방법은 무엇입니까?
  3. 자바 변수와 리터럴
  4. Java 표현식, 명령문 및 블록
  5. 자바 클래스와 객체
  6. 자바 추상 ​​클래스와 추상 메소드
  7. Java 중첩 및 내부 클래스
  8. 자바 싱글톤 클래스
  9. 자바 던지기 및 던지기
  10. 자바 오토박싱과 언박싱