2017-11-07 2 views
0

저는이 문제에 대한 많은 솔루션을 지금 사용해 왔으며 운이 없었습니다.날짜 + TIme 선택기 변수를 DateTime (Joda) 또는 날짜 변수에 할당

나는 두 개의 선택기, 한 개의 날짜 선택기와 한 개의 시간 선택기를 가지고 있습니다. 사용자가 자신의 날짜와 시간을 선택하면 선택은 이러한 변수에 저장됩니다

  • INT dayNow
  • monthNow
  • hourNow
  • minuteNow

내가 노력하고 무엇 yearNow 달성하기 위해 이러한 변수를 DateTime 변수에 할당 할 수 있습니다. 예 :

DateTime timeselectedbyuser = dayNow + monthNow + yearNow + hourNow + minuteNow;

내가 DateTime 유형이어야하는 이유는 JodaTime과 협력하여 현재 시간과 사용자가 선택한 시간 사이의 시간 차이를 계산하는 것입니다. 데이트 피커.

//START DATE SELECTED BY USER 
      timeselectedbyuser = DateTime.parse(String.valueOf(dayNow + monthNow + yearNow + hourNow + minuteNow)); 

      //CURRENT DATE 
      currentdatetime = new DateTime(); 
      DateTimeFormatter form = DateTimeFormat.forPattern("dd MMM yyyy" + " h:mm a "); 


      long millis1 = timeselectedbyuser.getMillis(); 
      long milis2 = currentdatetime.getMillis(); 
      long diff = milis2 - millis1; 

      long diffinMinutes = diff/(60 * 1000); 



      diffinmins.setText((int) diffinMinutes); 

사람이 나를 도와 주 시겠어요 : 여기

내가 그 실패 시도 몇 가지 방법이있다?

답변

0

나는 단지 int 변수를 추가하고 String으로 구문 분석하여 DateTime을 얻을 수 없다고 생각합니다.

DateTime dt = new DateTime(yearNow, monthNow, dayNow, hourNow, minuteNow); 

또는 SimpleDateFormat를 사용하여 :

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy:MM:dd:HH:mm"); 
Date date = null; 
try { 
    date = simpleDateFormat.parse(yearNow + ":" + monthNow + ":" + dayNow + ":" + hourNow + ":" + minuteNow); 
} catch (ParseException e) { 
    e.printStackTrace(); 

이 날짜 형식에 대한 적절한 형식 문자열을 찾기 위해 JavaDoc을 확인 당신은 형식을 사용하거나 jodatime Doc에서 제공 org.joda.time.DateTime 생성자 중 하나를 사용해야 하나. 예를 들어, 24 시간 시계를 사용하는 경우 HH을 사용해야하고, 12 시간 시계를 사용하는 경우 KK:a을 사용해야합니다.

희망이 있습니다.

+0

감사합니다. @scsere – TheAlmac2