2014-01-13 1 views
-1

시간 (시간과 분)와 작업 할 때 Button1을 사용자가 클릭 (가) 현재 시스템 시간 + 1자바 - 내가 현재 시스템 시간을 검색 할 및

그럼, 내가 원하는 것 VAR "CT" var ct = 현재 시스템 시간에 프로그램이 텍스트 필드 텍스트를 "완료"로 설정하지만 시간과 함께 작업 할 수없는 것처럼 보입니다.

나는 기본 클래스에있다 : CT = 현재 시간이 있는지 확인하는

이제
Calendar now = Calendar.getInstance(); 
     int hour = now.get(Calendar.HOUR_OF_DAY); 
     int minute = now.get(Calendar.MINUTE); 
     int second = now.get(Calendar.SECOND); 
int ct=0; 


When user click Button1 
    name = jTextField1.getText(); 
     ct = minute + 1;  
     jLabel3.setText("Ends at "+ct); 

어떻게 영구적으로 방법을 실행할 수 있습니까? compareToHour(ct) 자바의 날짜/시간 처리가 꽤 잘 인정

+1

정확히이 문제가 무엇입니까? 가지고있는 오류를 적어주십시오. –

+0

안녕하세요, 제가 prelast 문장에서 말했듯이 : 이제 어떻게하면 영구적으로 ct = 현재 시간인지 확인하는 방법을 실행할 수 있습니까? –

+1

질문이 확실하지 않습니다. 어떤 종류의 타이머를 구현하려고합니까? – Radiodef

답변

1

방법을 확인합니다. 자유가 있다면 Joda-Time 라이브러리를 사용하는 것이 좋습니다.

DateTime now = new DateTime(); 
int hour = now.getHourOfDay(); 

제게있어 자바의 날짜/시간보다 훨씬 읽기 쉽습니다. 게다가 거기에 실제 지속 시간, 날짜에 대한 지원 만 시간 만 등 ...

+0

안녕하세요, 일했습니다. 고마워, 환호. –

+0

문제 없습니다. 감사합니다 : D – mjkaufer

+0

FYI, [java.util.Date'] (https://docs.oracle.com/javase/8/docs/api/java/util/)와 같은 번거로운 이전 날짜 시간 클래스 Date.html), ['java.util.Calendar'] (https://docs.oracle.com/javase/8/docs/api/java/util/Date.html) 및'java.text.SimpleTextFormat' [java.time] (https://docs.oracle.com/javase/8/docs/api/java/) 대신에 [유산] (https://en.wikipedia.org/wiki/Legacy_system)이되었습니다. time/package-summary.html) 클래스를 참조하십시오. –

2

가 아주 나쁜 될 : ct==current-hour

public static boolean compareToHour(int arg) 
{ 
    Calendar temp = Calendar.getInstance(); 
    int tempHour = temp.get(Calendar.HOUR_OF_DAY); 
    return arg==tempHour; 

} 

이 두 가지를 비교 어디서나 다음과 같은 방법을 실행하려면 경우

+0

또는 한 줄 :'JodaTime –

+0

+1 프로젝트는 현재 [유지 관리 모드] (https://en.wikipedia.org/wiki/Maintenance_mode)로 팀과 함께 [java.time] (http://docs.oracle.com/javase/8 /docs/api/java/time/package-summary.html) 클래스를 참조하십시오. –

+0

FYI, [Joda-Time] (http://www.joda.org/joda-time/)의 경우,'int hour = DateTime.now(). getHourOfDay();' –

0

TL; DR

ZonedDateTime.now(ZoneId.of("America/Montreal")) 
      .getHour() 

사용 java.time 현대적인 방법은 java.time 함께

수업.

현재 시간은 UTC로 가져옵니다.

Instant instant = Instant.now(); 

원하는/예상 시간대를 조정하십시오. JVM의 현재 기본 시간대를 확인할 수 있습니다. 그러나 JVM 내의 모든 응용 프로그램 스레드의 코드에 의해 런타임 중에 언제든지 기본값을 변경할 수 있습니다. 따라서 중요한 경우 원하는/예상 시간대를 지정하고 필요한 경우 사용자에게 묻습니다.

ZoneId을 적용하여 ZonedDateTime 개체를 얻습니다.

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

시간을 문의 할 수 있습니다. java.time

소개

int hour = zdt.getHour(); 

java.time 프레임 워크는 나중에 자바 8에 내장되어 있습니다. 이 클래스는 java.util.Date, Calendar, & SimpleDateFormat과 같이 문제가있는 이전 legacy 날짜 - 시간 클래스를 대체합니다.

지금 maintenance modeJoda-Time 프로젝트는의 java.time 클래스로 마이그레이션을 조언한다.

자세히 알아 보려면 Oracle Tutorial을 참조하십시오. 그리고 많은 예제와 설명을 위해 스택 오버플로를 검색하십시오.사양은 JSR 310입니다.

어디에서 java.time 클래스를 얻을 수 있습니까?

  • Java SE 8SE 9 이후
    • 내장한다.
    • 번들로 구현 된 표준 Java API의 일부입니다.
    • Java 9에는 몇 가지 사소한 기능과 수정 사항이 추가되었습니다.
  • Java SE 6 및 java.time 기능의 대부분
  • Android

ThreeTen-Extra 프로젝트는 추가 클래스와 java.time를 확장합니다. 이 프로젝트는 향후 java.time에 추가 될 수있는 가능성을 입증합니다. 여기에 Interval, YearWeek, YearQuartermore과 같은 유용한 클래스가 있습니다.

관련 문제