我正試圖編寫一種方法將日期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();
}
2014_06_11 10:55:00是字符串,其中是長的數據長是unix時間戳 –