2014-06-11 90 views
0

我正試圖編寫一種方法將日期String轉換爲Long。我不知道我是否寫錯了方法,或者SimpleDateFormat中的日期格式不正確。我得到我的字符串從SQLite數據庫就像這樣:用於將日期字符串解析爲長的Android方法

DBAdapter info = new DBAdapter(this); 
info.open(); 
infoStrArray = info.displayEventsInList4(); 
info.close(); 
startDateStr = getLongDate(Long.parseLong(infoStrArray[2])); 
endDateStr = getLongDate(Long.parseLong(infoStrArray[3])); 

textview_TV.setText(startDateStr + ", " endDateStr); 

在日期字符串是這樣寫的數據庫:「2014_06_11 10:55:00」。所以在我的getLongDate方法中,我編寫了SimpleDateFormat格式,如下所示:yyyy_MM_dd HH:mm:ss。下面是完整的方法:

public static String getLongDate(long milliSeconds) { 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd HH:mm:ss"); 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeInMillis(milliSeconds); 
    return sdf.format(calendar.getTime()); 

} 

那麼,運行代碼我得到的錯誤:java.lang.NumberFormatException: 2014_06_11 10:55:00。那麼毛刺在哪裏?方法寫錯了嗎,我是不是正確調用方法,還是日期格式語法,還是我根本看不到?

這裏是我的解決方案Igle把我放在軌道之後:

 startDateLong = getLongDate3(infoStrArray[2]); 
    endDateLong = getLongDate3(infoStrArray[3]); 


    textview_TV.setText(String.valueOf(startDateLong) + ", " + String.valueOf(endDateLong)); 



public static long getLongDate3(String dateString) { 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd HH:mm:ss"); 

    //This creates a date object from your string 
    Date date = null; 
    try { 
     date = sdf.parse(dateString); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    //getTime() always returns milliseconds since 01/01/1970 
    return date.getTime(); 
} 
+0

2014_06_11 10:55:00是字符串,其中是長的數據長是unix時間戳 –

回答

1

不要試圖只要解析字符串。

而不是一個字符串傳遞給getLongDate()這樣的:

public static String getLongDate(string dateString) { 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd HH:mm:ss"); 

    //This creates a date object from your string 
    Date date = sdf.parse(dateString); 

    //getTime() always returns milliseconds since 01/01/1970 
    return date.getTime(); 
} 
+0

我不得不調整你的代碼,但是你把我正確的軌道 - 謝謝! – kirktoon1882