2017-02-23 1 views
1

Je veux obtenir les lignes qui ont été ajoutées au cours des dernières semaines.Obtenir des lignes avec 'date_added' entre deux dates ne fonctionne pas

Voici mon code actuel:

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); 
} 

L'erreur doit être dans l'argument de sélection, parce que si je le laisse loin, toutes les chansons sont montrées, triées correctement.

J'espère que vous pouvez m'aider!

Répondre

0

MediaColumns.DATE_ADDED date et heure en format long. Par conséquent, vous n'avez pas besoin de formater votre date au format 'jj/mm/aaaa'. Ce code doit être faire le travail:

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

Sinon, pour formater une date 'jj/mm/aaaa' vous devez utiliser un DateFormat comme SimpleDateFormat:

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

String.format permet de formater une chaîne en utilisant une chaîne de format de style printf avec% s,% d,% f, etc ... en fait, vous pouvez l'utiliser pour imprimer une date:

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

pour plus d'informations sur format de style printf en Java, vous pouvez aller ici: https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax

+0

ne fonctionne pas du tout –

+0

En effet, il en raison du format DATE_ADDED ... Il est un long. J'ai mis à jour ma réponse –