Java로 현재 날짜 / 시간을 얻는 방법

java로 현재 날짜 / 시간을 얻는 방법


Java로 현재 날짜 / 시간을 얻는 가장 좋은 방법은 무엇입니까?


원하는 날짜 / 시간 형식에 따라 다릅니다.

  • 날짜 / 시간을 단일 숫자 값으로 원하는 경우 System.currentTimeMillis()UNIX 신기원 이후의 시간 (밀리 초 long) 으로 표시합니다 (Java로 ). 이 값은 UTC 시간대의 델타이며 시스템 시계가 올바르게 설정되었다고 가정하면 로컬 시간대와 무관합니다.

  • 구성 요소 (년, 월 등)에 숫자로 액세스 할 수있는 형식으로 날짜 / 시간을 원하는 경우 다음 중 하나를 사용할 수 있습니다.

    • new Date()Date현재 날짜 / 시간으로 초기화 된 객체를 제공합니다 . 문제는 DateAPI 메소드가 대부분 결함이 있고 더 이상 사용되지 않는다는 것 입니다.

    • Calendar.getInstance()Calendar기본값 Locale과를 사용하여 현재 날짜 / 시간으로 초기화 된 객체를 제공합니다 TimeZone. 다른 과부하로 특정 Locale및 / 또는를 사용할 수 있습니다 TimeZone. 캘린더는 작동하지만 API는 여전히 번거 롭습니다.

    • new org.joda.time.DateTime()기본 시간대와 시간을 사용하여 현재 날짜 / 시간으로 초기화 된 Joda-time 객체를 제공합니다 . 여기에 설명하기에는 너무 많은 다른 Joda 대안이 있습니다 ... 그러나 일부 사람들은 Joda 시간에 성능 문제가 있다고보고합니다. 예를 들어 Jodatime의 LocalDateTime은 처음 사용할 때 속도가 느립니다 .

    • 자바 8, 전화 LocalDateTime.now()및 것은 ZonedDateTime.now()당신이하는 표현에 줄 것이다 일을 현재 날짜 / 시간.

Java 8 이전에는 이러한 것들에 대해 알고있는 대부분의 사람들은 Joda- time이 시점 및 기간 계산과 관련된 작업을 수행하는 데 가장 적합한 Java API를 보유한 것으로 권장했습니다 . Java 8에서는 더 이상 사실이 아닙니다. 그러나 코드베이스에서 이미 Joda 시간을 사용중인 경우 마이그레이션해야 할 두 가지 이유 가 없습니다 .


1-LocalDateTime에는 시간대가 포함되지 않습니다. javadoc이 말했듯이 "오프셋 또는 시간대와 같은 추가 정보가 없으면 타임 라인에서 순간을 나타낼 수 없습니다."

2-코드를 지키지 않으면 중단되지 않으며 사용 중단 경고가 표시되지 않습니다. 물론 Joda 코드베이스는 업데이트를 중단 할 것입니다. 그러나 업데이트가 필요하지는 않습니다. 업데이트가 없다는 것은 안정성을 의미하며 좋은 일입니다. 또한 누군가 가 Java 플랫폼에서 회귀로 인한 문제를 해결할 가능성이 높습니다 .


YYYY.MM.DD-HH.MM.SS 형식으로 타임 스탬프를 출력 해야하는 경우 (매우 빈번한 경우) 다음과 같이하십시오.

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());

현재 날짜를 문자열로 사용하려면 다음을 시도하십시오.

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date));

또는

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));

http://www.mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/


에서 자바 (8) 이 있습니다 :

LocalDateTime.now()

시간대 정보가 필요한 경우 :

ZonedDateTime.now()

멋진 형식의 문자열을 인쇄하려는 경우 :

System.out.println(ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME))

Date 객체를 만드십시오 ...

Date date = new Date();

    // 2015/09/27 15:07:53
    System.out.println( new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(Calendar.getInstance().getTime()) );

    // 15:07:53
    System.out.println( new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()) );

    // 09/28/2015
    System.out.println(new SimpleDateFormat("MM/dd/yyyy").format(Calendar.getInstance().getTime()));

    // 20150928_161823
    System.out.println( new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()) );

    // Mon Sep 28 16:24:28 CEST 2015
    System.out.println( Calendar.getInstance().getTime() );

    // Mon Sep 28 16:24:51 CEST 2015
    System.out.println( new Date(System.currentTimeMillis()) );

    // Mon Sep 28
    System.out.println( new Date().toString().substring(0, 10) );

    // 2015-09-28
    System.out.println( new java.sql.Date(System.currentTimeMillis()) );

    // 14:32:26
    Date d = new Date();
    System.out.println( (d.getTime() / 1000 / 60 / 60) % 24 + ":" + (d.getTime() / 1000 / 60) % 60 + ":" + (d.getTime() / 1000) % 60 );

    // 2015-09-28 17:12:35.584
    System.out.println( new Timestamp(System.currentTimeMillis()) );

    // Java 8

    // 2015-09-28T16:16:23.308+02:00[Europe/Belgrade]
    System.out.println( ZonedDateTime.now() );

    // Mon, 28 Sep 2015 16:16:23 +0200
    System.out.println( ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME) );

    // 2015-09-28
    System.out.println( LocalDate.now(ZoneId.of("Europe/Paris")) ); // rest zones id in ZoneId class

    // 16
    System.out.println( LocalTime.now().getHour() );

    // 2015-09-28T16:16:23.315
    System.out.println( LocalDateTime.now() );

tl; dr

Instant.now()                                         // Capture the current moment in UTC, with a resolution of nanoseconds.

… 또는…

ZonedDateTime.now( ZoneId.of( "America/Montreal" ) )  // Capture the current moment as seen in the wall-clock time used by the people of a particular region (a time zone).

java.time

답변 중 일부는 java.time 클래스가 초기 버전의 Java와 함께 번들로 제공되는 번거로운 오래된 레거시 날짜-시간 클래스를 현대적으로 대체 한다고 언급합니다 . 아래는 약간 더 많은 정보입니다.

여기에 이미지 설명을 입력하십시오

시간대

다른 답변은 현재 날짜와 시간을 결정하는 데 시간대가 어떻게 중요한지를 설명하지 못합니다. 주어진 순간에 대해 날짜 와 시간은 지구마다 다릅니다. 예를 들어 자정 후 몇 분은 프랑스 파리 에서 새로운 날 이면서 몬트리올 퀘벡 에서는 여전히 "어제"입니다 .

Instant

비즈니스 로직과 데이터 저장 / 교환의 대부분은 모범 사례로 UTC 로 수행해야합니다 .

nanoseconds 의 해상도로 UTC 로 현재 순간을 얻으려면 class를 사용하십시오 . 기존의 컴퓨터 하드웨어 클럭은 정확도가 제한되어 있으므로 현재 순간은 나노초가 아닌 밀리 초 또는 마이크로 초로 캡처 될 수 있습니다.Instant

Instant instant = Instant.now();

ZonedDateTime

Instant다른 시간대로 조정할 수 있습니다 . ZoneId를 얻으려면 객체를 적용하십시오 ZonedDateTime.

ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( z );

우리는 건너 뛰고 Instant전류를 ZonedDateTime직접 얻을 수 있습니다.

ZonedDateTime zdt = ZonedDateTime.now( z );

항상 선택적 시간대 인수를 전달하십시오. 생략하면 JVM의 현재 기본 시간대가 적용됩니다. 기본값은에서 변경할 수 있는 경우에도, 잠시 동안 런타임. 앱을 통제 할 수없는 외부에 노출시키지 마십시오. 항상 원하는 / 예상 시간대를 지정하십시오.

ZonedDateTime do_Not_Do_This = ZonedDateTime.now(); // BAD - Never rely implicitly on the current default time zone.

당신은 나중에 추출 할 수 Instant로부터를 ZonedDateTime.

Instant instant = zdt.toInstant();

타임 라인에서 실제 순간을 원할 때는 항상 Instant또는 ZonedDateTime대신을 사용 LocalDateTime하십시오. Local…가 가능한 순간의 대략적인 아이디어를 표현하므로 유형이 의도적 시간대의 개념이 없습니다. 실제 순간을 얻으려면 시간대를 지정하여 Local…유형을 a 로 변환하여 ZonedDateTime의미를 부여해야합니다.

LocalDate

이 LocalDate클래스는 시간이없고 시간대가없는 날짜 전용 값을 나타냅니다.

ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );  // Always pass a time zone.

현

날짜-시간 값을 나타내는 문자열을 생성하려면 toString표준 ISO 8601 형식 의 java.time 클래스를 호출 하십시오 .

String output = myLocalDate.toString();  // 2016-09-23

… 또는…

String output = zdt.toString();  // 2016-09-23T12:34:56.789+03:00[America/Montreal]

이 ZonedDateTime클래스는 표준 시간대 이름을 대괄호 안에 현명하게 추가하여 표준 형식을 확장합니다.

다른 형식의 경우 DateTimeFormatter클래스 에서 많은 질문과 답변에 대한 스택 오버플로를 검색하십시오 .

기피 LocalDateTime

RamanSB의 질문에 대한 의견과 달리 현재 날짜-시간에 클래스를 사용 해서는 안됩니다LocalDateTime .

은 LocalDateTime의도적으로 어떤 시간대 또는 오프셋에서-UTC 정보가 부족하다. 따라서 타임 라인에서 특정 순간을 추적 할 때는 적합 하지 않습니다 . 현재 순간을 포착하는 데는 적절 하지 않습니다 .

"로컬"문구는 직관적이지 않습니다. 특정 지역이 아닌 모든 지역을 의미 합니다 . 예를 들어 올해 크리스마스는 12 월 25 일 자정에 시작 2017-12-25T00:00:00합니다 LocalDateTime. 그러나 이것은 다른 시간에 전세계 여러 지점에서 자정을 의미합니다. 자정은 키리바시 에서 처음으로 , 나중에 뉴질랜드에서, 인도에서 몇 시간 더 늦게 진행되며, 캐나다의 아이들이 그날을 기다리고있을 때 프랑스에서 크리스마스가 시작되기 전에 몇 시간이 더지나갑니다. 이 크리스마스 스타트 포인트 각각은 별도로 표시됩니다 ZonedDateTime.


시스템 외부에서

시스템 시계를 신뢰할 수없는 경우 Java : 시스템 시계가 아닌 서버에서 현재 날짜 및 시간 가져 오기 및 내 답변을 참조하십시오 .

외부 라디오 시계 장치의 사진

java.time.Clock

현재 시점의 대체 공급 업체를 활용하려면 추상 java.time.Clock클래스 의 서브 클래스를 작성하십시오 .

Clock다양한 java.time 메소드에 인수로 구현을 전달할 수 있습니다 . 예를 들면 다음과 같습니다 Instant.now( clock ).

Instant instant = Instant.now( yourClockGoesHere ) ;

테스트 목적의 대체 구현주의 Clock에서 정적으로 사용할 수를 Clock자체 : fixed, offset, tick, 등.


java.time에 대하여

java.time의 프레임 워크는 나중에 자바 8에 내장되어 있습니다. 이 클래스는 까다로운 기존에 대신 기존 과 같은 날짜 - 시간의 수업을 java.util.Date, Calendar, SimpleDateFormat.

Joda 타임 프로젝트는 지금에 유지 관리 모드 의로 마이그레이션을 조언 java.time의 클래스.

자세한 내용은 Oracle Tutorial을 참조하십시오 . 많은 예제와 설명을 보려면 스택 오버플로를 검색하십시오. 사양은 JSR 310 입니다.

java.time 객체를 데이터베이스와 직접 교환 할 수 있습니다 . JDBC 4.2 이상을 준수 하는 JDBC 드라이버를 사용하십시오 . 문자열이 필요없고 수업이 필요 없습니다 .java.sql.*

java.time 클래스는 어디서 구할 수 있습니까?

ThreeTen - 추가 프로젝트 추가 클래스와 java.time를 확장합니다. 이 프로젝트는 향후 java.time에 추가 될 수있는 입증 된 근거입니다. 당신은 여기에 몇 가지 유용한 클래스와 같은 찾을 수 있습니다 Interval, YearWeek, YearQuarter, 그리고 더 .


사용하다:

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
System.out.println(timeStamp );

(작동 중입니다.)


여러 가지 방법이 있습니다.


날짜의 객체를 만들고 간단히 인쇄하십시오.

Date d = new Date(System.currentTimeMillis());
System.out.print(d);

위의 솔루션과 유사합니다. 그러나 나는 항상이 코드 덩어리를 찾고 있습니다.

Date date=Calendar.getInstance().getTime();
System.out.println(date);

java.util.Date를 보셨습니까? 정확히 당신이 원하는 것입니다.


java.util.Date date = new java.util.Date();

인스턴스화 한 시간으로 자동 채워집니다.


1st java.util.Date 클래스 이해

1.1 현재 날짜를 얻는 방법

import java.util.Date;

class Demostration{
    public static void main(String[]args){
        Date date = new Date(); // date object
        System.out.println(date); // Try to print the date object
    }
}

1.2 getTime () 메소드 사용법

import java.util.Date;
public class Main {
    public static void main(String[]args){
        Date date = new Date();
        long timeInMilliSeconds = date.getTime();
        System.out.println(timeInMilliSeconds);
    }
}

시간 비교를 위해 1970 년 1 월 1 일 00:00:00 GMT 이후 밀리 초 수를 반환합니다.

1.3 SimpleDateFormat 클래스를 사용하여 시간을 형식화하는 방법

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

class Demostration{
    public static void main(String[]args){
        Date date=new Date();
        DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
        String formattedDate=dateFormat.format(date);
        System.out.println(formattedDate);
    }
}

또한 "yyyy-MM-dd hh : mm : ss"와 같은 다른 형식 패턴을 사용해보고 원하는 패턴을 선택하십시오. http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

2 번째 java.util.Calendar 클래스 이해

2.1 캘린더 클래스를 사용하여 현재 타임 스탬프 얻기

import java.util.Calendar;

class Demostration{
    public static void main(String[]args){
        Calendar calendar=Calendar.getInstance();
        System.out.println(calendar.getTime());
    }
}

2.2 달력을 다른 날짜로 설정하기 위해 setTime 및 기타 설정 방법을 사용해보십시오.

출처 : http://javau91.blogspot.com/


java.util.Date의 경우 새 Date ()를 작성하십시오.

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date)); //2016/11/16 12:08:43

java.util.Calendar의 경우 Calendar.getInstance ()를 사용하십시오.

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal)); //2016/11/16 12:08:43

java.time.LocalDateTime의 경우 LocalDateTime.now ()를 사용하십시오.

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
LocalDateTime now = LocalDateTime.now();
System.out.println(dtf.format(now)); //2016/11/16 12:08:43

java.time.LocalDate의 경우 LocalDate.now ()를 사용하십시오.

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate localDate = LocalDate.now();
System.out.println(dtf.format(localDate)); //2016/11/16

참조 : https://www.mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/


나는 이것이 최선의 방법이라고 생각합니다.

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime())); // 2014/08/06 16:00:22

사용하다:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd::HH:mm:ss");
System.out.println(sdf.format(System.currentTimeMillis()));

print 문은 호출 시점이 아닌 호출 시점을 인쇄합니다 SimpleDateFormat. 따라서 새로운 객체를 만들지 않고 반복적으로 호출 할 수 있습니다.


Date 클래스를 살펴보십시오 . 많은 날짜 / 시간 작업을 수행하는 데 선호되는 방법 인 최신 Calendar 클래스 도 있습니다 (Date의 많은 방법은 더 이상 사용되지 않습니다).

현재 날짜 만 원하면 새 Date 객체를 만들거나을 호출하십시오 Calendar.getInstance();.


언급했듯이 기본 Date ()는 현재 시간을 얻는 것과 관련하여 필요한 것을 할 수 있습니다. 최근에 Java 날짜를 많이 사용하는 경험에 따르면 내장 클래스에 많은 이상한 점이 있으며 많은 Date 클래스 메소드가 더 이상 사용되지 않습니다. 나에게 눈에 띄는 한 가지 이상한 점은 개월이 0을 기준으로 기술적 인 관점에서 의미가 있지만 실제로는 매우 혼란 스러울 수 있다는 것입니다.

현재 날짜만으로도 충분하다면 날짜를 사용하여 많은 조작 / 계산을 수행하려는 경우 타사 라이브러리를 사용하는 것이 유리할 수 있습니다 (많은 Java 개발자가 만족하지 못했기 때문에 존재합니다) 내장 기능).

Joda-time이 날짜 작업을 단순화하는 데 매우 유용하다는 것을 알았을 때 Stephen C의 두 번째 제안은 매우 잘 문서화되어 있으며 웹에서 많은 유용한 예제를 찾을 수 있습니다. 나는 심지어 일반적인 래퍼 조작을 통합하고 단순화하는 데 사용하는 정적 래퍼 클래스 (DateUtils)를 작성했습니다.


새로운 Data-Time API는 Java 8의 시작과 함께 도입되었습니다. 이는 이전 데이터-시간 API에서 발생한 다음과 같은 문제 때문입니다.

시간대를 처리하기 어려움 : 시간대를 처리하기 위해 많은 코드를 작성해야합니다.

스레드 안전하지 않음 : java.util.Date는 스레드 안전하지 않습니다.

Java 8을 둘러보십시오.

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.time.Month;


public class DataTimeChecker {

    public static void main(String args[]) {
        DataTimeChecker dateTimeChecker = new DataTimeChecker();
        dateTimeChecker.DateTime();
    }

    public void DateTime() {
        // Get the current date and time
        LocalDateTime currentTime = LocalDateTime.now();
        System.out.println("Current DateTime: " + currentTime);

        LocalDate date1 = currentTime.toLocalDate();
        System.out.println("Date : " + date1);

        Month month = currentTime.getMonth();
        int day = currentTime.getDayOfMonth();
        int seconds = currentTime.getSecond();

        System.out.println("Month : " + month);
        System.out.println("Day : " + day);
        System.out.println("Seconds : " + seconds);

        LocalDateTime date2 = currentTime.withDayOfMonth(17).withYear(2018);
        System.out.println("Date : " + date2);

        //Prints 17 May 2018
        LocalDate date3 = LocalDate.of(2018, Month.MAY, 17);
        System.out.println("Date : " + date3);

        //Prints 04 hour 45 minutes
        LocalTime date4 = LocalTime.of(4, 45);
        System.out.println("Date : " + date4);

        // Convert to a String 
        LocalTime date5 = LocalTime.parse("20:15:30");
        System.out.println("Date : " + date5);
    }
}

위의 코딩 결과 :

Current DateTime: 2018-05-17T04:40:34.603
Date : 2018-05-17
Month : MAY
Day : 17
Seconds : 34
Date : 2018-05-17T04:40:34.603
Date : 2018-05-17
Date : 04:45
Date : 20:15:30

 System.out.println( new SimpleDateFormat("yyyy:MM:dd - hh:mm:ss a").format(Calendar.getInstance().getTime()) );
    //2018:02:10 - 05:04:20 PM

AM / PM이있는 날짜 / 시간


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));
   }
}

fet 현재 데이터에 날짜를 사용할 수 있습니다. 그래서 SimpleDateFormatget 형식을 사용하여


나는이 방법을 만들었고, 그것은 나를 위해 일한다 ...

public String GetDay() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd")));
}

public String GetNameOfTheDay() {
    return String.valueOf(LocalDateTime.now().getDayOfWeek());
}

public String GetMonth() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("MM")));
}

public String GetNameOfTheMonth() {
    return String.valueOf(LocalDateTime.now().getMonth());
}

public String GetYear() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy")));
}

public boolean isLeapYear(long year) {
    return Year.isLeap(year);
}

public String GetDate() {
    return GetDay() + "/" + GetMonth() + "/" + GetYear();
}

public String Get12HHour() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("hh")));
}

public String Get24HHour() {
    return String.valueOf(LocalDateTime.now().getHour());
}

public String GetMinutes() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("mm")));
}

public String GetSeconds() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("ss")));
}

public String Get24HTime() {
    return Get24HHour() + ":" + GetMinutes();
}

public String Get24HFullTime() {
    return Get24HHour() + ":" + GetMinutes() + ":" + GetSeconds();
}

public String Get12HTime() {
    return Get12HHour() + ":" + GetMinutes();
}

public String Get12HFullTime() {
    return Get12HHour() + ":" + GetMinutes() + ":" + GetSeconds();
}

Date객체와 형식을 직접 사용할 수 있습니다 . 예를 들어, 포맷하기가 어렵고 더 많은 코드가 필요합니다.

Date dateInstance = new Date();
int year = dateInstance.getYear()+1900;//Returns:the year represented by this date, minus 1900.
int date = dateInstance.getDate();
int month = dateInstance.getMonth();
int day = dateInstance.getDay();
int hours = dateInstance.getHours();
int min = dateInstance.getMinutes();
int sec = dateInstance.getSeconds();

String dayOfWeek = "";
switch(day){
    case 0:
        dayOfWeek = "Sunday";
        break;
    case 1:
        dayOfWeek = "Monday";
        break;
    case 2:
        dayOfWeek = "Tuesday";
        break;
    case 3:
        dayOfWeek = "Wednesday";
        break;
    case 4:
        dayOfWeek = "Thursday";
        break;
    case 5:
        dayOfWeek = "Friday";
        break;
    case 6:
        dayOfWeek = "Saturday";
        break;
}
System.out.println("Date: " + year +"-"+ month + "-" + date + " "+ dayOfWeek);
System.out.println("Time: " + hours +":"+ min + ":" + sec);

산출:

Date: 2017-6-23 Sunday
Time: 14:6:20

보시다시피 이것이 최악의 방법이며 오라클 문서에 따르면 사용되지 않습니다 .

오라클 문서 :

Date 클래스는 특정 순간을 밀리 초 단위로 나타냅니다.

JDK 1.1 이전에는 Date 클래스에 두 가지 추가 기능이있었습니다. 연도, 월, 일,시, 분 및 초 값으로 날짜를 해석 할 수있었습니다. 또한 날짜 문자열의 형식화 및 구문 분석을 허용했습니다. 불행히도 이러한 기능에 대한 API는 국제화가 불가능했습니다. JDK 1.1부터는 Calendar 클래스를 사용하여 날짜와 시간 필드를 변환하고 DateFormat 클래스를 사용하여 날짜 문자열을 형식화하고 구문 분석해야합니다. Date의 해당 메소드는 더 이상 사용되지 않습니다.

또는 Calendar수업 을 사용할 수도 있습니다 .

Calendar.YEAR;
//and lot more

현재 시간을 얻으려면 다음을 사용할 수 있습니다.

Calendar rightNow = Calendar.getInstance();

문서:

다른 로케일 구분 클래스와 마찬가지로이 유형의 일반적으로 유용한 객체를 얻기위한 Calendar클래스 메소드를 제공합니다 getInstance. 달력의 getInstance메서드는 Calendar달력 필드가 현재 날짜 및 시간으로 초기화 된 객체를 반환합니다.

날짜 만 얻기위한 아래 코드

Date rightNow = Calendar.getInstance().getTime();
System.out.println(rightNow);

또한 Calendar클래스에는 서브 클래스가 있습니다. GregorianCalendar그들 중 하나이며 구체적인 하위 클래스이며 Calendar대부분의 세계에서 사용되는 표준 달력 시스템을 제공합니다.

사용 예 GregorianCalendar:

Calendar cal = new GregorianCalendar();
int hours = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
int ap = cal.get(Calendar.AM_PM);

String amVSpm;
if(ap == 0){
    amVSpm = "AM";
}else{
    amVSpm = "PM";
}

String timer = hours + "-" + minute + "-" + second + " " +amVSpm;
System.out.println(timer);

SimpleDateFormat, 간단하고 빠른 방법으로 날짜 형식을 지정할 수 있습니다 .

String pattern = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

String date = simpleDateFormat.format(new Date());
System.out.println(date);

이 Jakob Jenkov 학습서 : Java SimpleDateFormat을 읽으십시오 .

다른 사람들이 언급했듯이, 날짜부터 조작해야 할 때 단순하고 최상의 방법이 없었거나 내장 클래스 인 API를 만족시킬 수 없었습니다.

예를 들어, 두 날짜 사이에 차이 가 필요할 때 두 날짜 를 비교 해야 할 때 (내장 방법도 있음) 더 많은 것. 타사 라이브러리를 사용해야했습니다. 좋고 인기있는 것 중 하나는 Joda Time입니다.

또한 읽어보십시오 :

. 가장 행복한 것은 현재 (Java 8에서), 어떤 이유로 든 라이브러리를 다운로드하여 사용할 필요가 없습니다. Java 8에서 현재 날짜 및 시간을 가져 오는 간단한 예,

LocalTime localTime = LocalTime.now();
System.out.println(localTime);

//with time zone
LocalTime localTimeWtZone = LocalTime.now(ZoneId.of("GMT+02:30"));
System.out.println(localTimeWtZone);

Java 8 날짜에 대해 읽을 수 있는 좋은 블로그 게시물 중 하나입니다 .

그리고 더 많은 방법 및 / 또는 유용한 방법이 있기 때문에 Java 날짜 및 시간에 대해 더 많은 정보를 얻으십시오.

편집하다:

@BasilBourque 의견에 따르면, 같은 귀찮은 된 날짜 - 시간 수업 java.util.Date, java.util.Calendar그리고 java.text.SimpleTextFormat지금 기존 에 의해 대체, java.time클래스 .


나는 같은 질문을했을 때 필요한 모든 것이기 때문에이 대답을 던질 것입니다.

Date currentDate = new Date(System.currentTimeMillis());

currentDateJava Date객체 의 현재 날짜입니다 .


이 코드를 사용해보십시오.

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CurrentTimeDateCalendar {
    public static void getCurrentTimeUsingDate() {
        Date date = new Date();
        String strDateFormat = "hh:mm:ss a";
        DateFormat dateFormat = new SimpleDateFormat(strDateFormat);
        String formattedDate= dateFormat.format(date);
        System.out.println("Current time of the day using Date - 12 hour format: " + formattedDate);
    }
    public static void getCurrentTimeUsingCalendar() {
        Calendar cal = Calendar.getInstance();
        Date date=cal.getTime();
        DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
        String formattedDate=dateFormat.format(date);
        System.out.println("Current time of the day using Calendar - 24 hour format: "+ formattedDate);
    }
}

샘플 출력은 다음과 같습니다.

날짜-12 시간 형식을 사용한 현재 시간 : 오후 11:13:01

일정을 사용하는 현재 시간-24 시간 형식 : 23:13:01

더 자세한 정보 :

Java에서 현재 날짜 시간 가져 오기

참고 URL : https://stackoverflow.com/questions/5175728/how-to-get-the-current-date-time-in-java

 

[출처] https://c10106.tistory.com/m/4014

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
18 [java 인공지능] Spring AI 로 ChatGPT API 만들기 졸리운_곰 2024.12.30 244
17 [java 인공지능] 오라클, 자바 머신러닝 라이브러리 ‘트리뷰오’ 오픈소스로 공개 졸리운_곰 2023.08.27 308
16 [java 인공지능] 자바를 위한 머신 러닝 라이브러리 졸리운_곰 2023.08.27 386
15 [Java 인공지능] 오라클, 자바 머신러닝 라이브러리 ‘트리뷰오’ 오픈소스로 공개 file 졸리운_곰 2023.08.13 375
14 [java 인공지능] [java] 라이프 게임 (life game) file 졸리운_곰 2021.10.19 358
13 How to use Weka in your Java code 졸리운_곰 2020.02.01 316
12 weka and java eclipse example : A Simple Machine Learning Example in Java file 졸리운_곰 2020.01.31 383
11 머신러닝? weka file 졸리운_곰 2020.01.31 375
10 [Weka] Weka를 이용한 Iris 데이터 머신러닝 file 졸리운_곰 2020.01.30 380
9 [강좌] WEKA 사용법 (간단한 분류, 의사결정트리 분석 설명) file 졸리운_곰 2020.01.30 356
8 [JESS] Jess , 이클립스 연동 file 졸리운_곰 2019.12.22 227
7 Jess 간단한 문법 요약 졸리운_곰 2019.12.22 306
6 Jess 6.1 다운로드 friedman-hill_src_1_jess_se file 졸리운_곰 2019.12.22 198
5 java artificial intelligence Rule Engine Jess Working Memory 졸리운_곰 2019.12.22 303
4 Defining Functions in Jess 졸리운_곰 2019.12.22 400
3 Jess Language Basics 졸리운_곰 2019.12.22 286
2 Embedding Jess in a Java Application 졸리운_곰 2019.12.22 315
1 다섯개의 탑 자바로 머신러닝 라이브러리 Top 5 machine learning libraries for Java file 졸리운_곰 2017.08.22 409
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED