2017-02-23 1 views
1

지난 주 동안 추가 된 행을 가져오고 싶습니다.두 날짜 사이에 'date_added'가있는 행 가져 오기가 작동하지 않습니다.

여기 내 실제 코드 :

private static Cursor makeRecentlyAddedSongsCursor(Context context) { 
    String[] sProjection = new String[] {MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DATE_ADDED}; 

    String MIN_DATE = String.format("dd/MM/yyyy", new Date().getTime() - ((long) PreferenceUtility.getRecentlyAddedTimespan(context) * 7L * 24L * 60L * 60L * 1000L)); 
    String CURRENT_DATE = String.format("dd/MM/yyyy", new Date().getTime()); 

    String sSelection = MediaStore.Audio.Media.DATE_ADDED + Constants.Database.BETWEEN; //String BETWEEN = " BETWEEN ? AND ?"; 
    String[] sSelectionArgs = {MIN_DATE, CURRENT_DATE}; 

    return context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, sProjection, sSelection, sSelectionArgs, MediaStore.Audio.Media.DATE_ADDED + Constants.Database.SORT_DESCENDING); 
} 

나는 멀리 떠날 경우, 모든 노래가 표시되기 때문에 오류가 선택 인수에 있어야이 제대로 분류.

나를 도울 수 있기를 바랍니다.

답변

0

MediaColumns.DATE_ADDED 긴 형식의 날짜 시간입니다.

따라서 'dd/MM/yyyy'형식으로 날짜를 포맷 할 필요가 없습니다. 이 코드는 작업을 수행해야한다 :

String currentDate = new SimpleDateFormat("dd/MM/yyyy").format(new Date()); 

String.format 문자열을 포맷 할 수 있습니다 : 당신이 사용한다 'DD/MM은/YYYY'에서 날짜의 서식, 그렇지 않으면

Long current = (new Date().getTime())/1000; 
String currentDate = current.toString(); 

DateFormatSimpleDateFormat 같은 에 대한 자세한 내용은

Calendar c = ...; 
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c); 

: 사실 당신이 날짜를 출력 할 수 있습니다 ... 등 % s의 % d 개, % f를,와의 printf 스타일의 형식 문자열을 사용하여 Java의 printf 스타일 형식을 사용하면 여기에 갈 수 있습니다. https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax

+0

전혀 작동하지 않습니다. –

+0

실제로 DATE_ADDED 형식 때문입니다. 내 대답을 업데이트했습니다. –

관련 문제