2017-12-21 1 views
1

저는 Android에 익숙하지 않아 한 곳에서 머물러 있습니다. mysql 데이터베이스에서 날짜를 가져 와서 Android 앱에 표시하고 싶습니다. 안드로이드 응용 프로그램에 대한데이터베이스에서 가져온 날짜가 잘못 표시되었습니다.

코드

try { 
JSONArray data = response.getJSONArray("std"); 
String result[]=new String[data.length()]; 
for (int i = 0; i < data.length(); i++) 
{ 
    JSONObject obj = data.getJSONObject(i); 
    name = obj.getString("Name"); 
    fromdate=obj.getString("From"); 
    todate = obj.getString("To"); 
    DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); 
    Calendar cal=Calendar.getInstance(); 
    Date fd=formatter.parse(fromdate); 
    cal.setTime(fd); 
    from1=cal.getTimeInMillis(); 
    Date td=formatter.parse(todate); 
    cal.setTime(td); 
    to1=cal.getTimeInMillis();    
    date= DateUtils.formatDateRange(Main2Activity.this, from1, to1, 
    DateUtils.FORMAT_SHOW_YEAR); 
    result[i]=""+name+"\n"+date; 
    } 

JSON 파일

<?php 
$result=mysqli_query($link,"select * from oTrip"); 
$data=array(); 
$rows=mysqli_num_rows($result); 
while($rec=mysqli_fetch_assoc($result)) 
{ 
$data[]=$rec; 
} 
header('Content-Type: application/json'); 
echo json_encode(array("std" =>$data)); 
?> 

그리고 출력은

enter image description here

이 함께 도와주세요입니다! 감사합니다.

+0

:

당신은 한 - 라이너를 사용할 수 있습니다. – ADM

+1

@whenthemorningcomes DateUtils는'android.text.format'패키지의 Api 클래스입니다. – ADM

+0

제 잘못입니다. 감사합니다 ^^ –

답변

0

사용이 :

JSONObject obj = data.getJSONObject(i); 
name = obj.getString("Name"); 
fromdate=obj.getString("From"); 
todate = obj.getString("To"); 
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
Date fd=formatter.parse(fromdate); 
Date td=formatter.parse(todate); 
DateFormat newFormatter = new SimpleDateFormat("dd-MM-yyyy"); 
String newFromdate = newFormatter.format(fd); 
String newTodate = newFormatter.format(td); 
date = newFromdate + " - " + newTodate; 
result[i]=""+name+"\n"+date; 

당신은 구문 분석해야 날짜를 주어진 JSON 형식으로 변경하고 다른 구문으로 formatter을 사용하여 구문 분석 된 날짜를 새로운 형식으로 변경하십시오. 당신의 JSON 응답을 추가

DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
DateFormat newFormatter = new SimpleDateFormat("dd-MM-yyyy"); 
fromdate = newFormatter.format(formatter.parse(fromdate)); 
todate = newFormatter.format(formatter.parse(todate)); 
+0

작동하지만 형식이 dd-mm-yyyy로 변경되지 않았습니다. –

+0

코드를 편집하고 다시 복사하십시오. –

+0

Thnx 완료 ... –

0

변경 "DD-MM-YYYY"에서 "DD/MM은/년"

+0

아니요. 도움이되지 않았습니다. –

+0

이 코드 조각은 해결책이 될 수 있지만 [설명 포함] (//meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)은 게시물의 품질을 향상시키는 데 정말로 도움이됩니다. 앞으로 독자의 질문에 답하고 있으며 코드 제안의 이유를 알지 못할 수도 있습니다. – yivi

0

당신은이 작업을 수행 할 수

fromdate=obj.getLong("From"); 
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm dd/MM/yyyy"); 
    sdf.format(new Date(fromdate)); 
+0

이것은 도움이되지 않습니다. 다른 제안이 있습니까? –

+0

그것은 내 경우에 당신이 나를 날짜 값 –

+0

에서 보여주기 때문에 오래 사용하려면 bigint 형식으로 데이터베이스에 날짜를 저장해야합니까? –

관련 문제