2017-02-23 33 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'格式設置日期的格式。此代碼應做的工作:

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

否則,格式化 'DD/MM/YYYY' 的日期,你應該使用DateFormatSimpleDateFormat

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

String.format允許格式的字符串使用printf風格的格式字符串與%s,%d,%F,等等......其實你可以用它來打印日期:

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

有關的更多信息在Java中,你可以去這裏printf風格的格式: https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax

+0

完全不 –

+0

由於工作的確,在DATE_ADDED格式...這是一個漫長的。我已經更新了我的答案 –

相關問題