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자체 : fixedoffsettick, 등.


java.time에 대하여

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

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

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

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

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

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


사용하다:

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.Datejava.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

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
404 자바 인코딩 관련 문제 종합 정리 file 졸리운_곰 2021.01.29 40
403 JAVA) 예외처리(throw , throws) file 졸리운_곰 2021.01.24 21
402 [Java 디자인패턴] [JAVA 디자인 패턴] static을 응용한 싱글톤 패턴(Singleton Pattern) 구현 졸리운_곰 2021.01.22 20
401 예외처리 (throwable, exception, error, throws) file 졸리운_곰 2021.01.21 39
400 Eclipse -`항상 실행 백그라운드에서 실행 '창을 다시 표시하는 방법 file 졸리운_곰 2021.01.14 438
399 Prometheus + Grafana로 Java 애플리케이션 모니터링하기 file 졸리운_곰 2020.12.17 79
398 [스프링 배치] java Spring Batch 졸리운_곰 2020.12.16 77
397 [java] [MyBatis] #{} 와 ${} 개념과 차이점 졸리운_곰 2020.12.11 47
396 [java, mybatis] MyBatis에서 샾(#{})과 달러(${})의 차이는 무엇일까? 졸리운_곰 2020.12.11 66
395 [Java] 자바 extends, implements 차이 file 졸리운_곰 2020.12.10 48
394 [JAVA] String to int, int to String 형변환 컴퓨터/코딩 졸리운_곰 2020.12.10 35
393 [Java] 현재날짜 구하기 졸리운_곰 2020.12.10 15
392 [Java] [Java] Jackson으로 Json <-> Object 변환(Transformation)하기 졸리운_곰 2020.12.09 18
391 [java] jackson custom serializer, deserializer 만들기 file 졸리운_곰 2020.12.09 60
390 [Java] Deserialize MongoDB date fields to Java POJO Using Jackson 졸리운_곰 2020.12.09 132
389 [Java] Jackson ObjectMapper upper/lower case issues 졸리운_곰 2020.12.09 473
388 Java의 날짜와 시간 API file 졸리운_곰 2020.12.03 41
» Java로 현재 날짜 / 시간을 얻는 방법 file 졸리운_곰 2020.11.30 451
386 [java, jackson] [jackson] json serialize 만 ignore 하고 싶다면? 졸리운_곰 2020.11.07 16
385 Java MongoDB : Query document 졸리운_곰 2020.11.07 30
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED