2016-09-17 53 views
-1

我把這個日期和時間連接成一個字符串,我做對了嗎?因爲我想給strDateTime傳遞給一個長型的(因爲它的構造是龍) 這裏的代碼將一個字符串值傳遞給Long

public void DT(){ 
     seldate = (TextView) findViewById(R.id.receivedate); 
     newDate = seldate.getText().toString(); 
     timeChose = time1.getText().toString(); 
     final TimePicker tp = (TimePicker) findViewById(R.id.timePicker1); 

     strDateTime = newDate + " "+ timeChose ; 
     DatabaseSource sched = new DatabaseSource(
       subject.getText().toString(), 
       description.getText().toString(), 
       strDateTime.toLong() 
     ); 
     long result = dbHelper.addSched(sched); 
     if(result>0){ 
      Toast.makeText(getApplicationContext(),"Added", Toast.LENGTH_SHORT).show(); 
     } 
     else { 
      Toast.makeText(getApplicationContext(),"Add Failed", Toast.LENGTH_SHORT).show(); 
     } 
} 

PS選定的日期,我把它保存到一個首選項鍵,然後得到它,並傳遞給TextView的中下一個活動(我將創建該事件的地方),然後當點擊一個edittext時,彈出一個timepickerdialog,然後將時間設置爲edittext字段本身。

+0

什麼是'strDateTime'的格式? –

+0

字符串strDateTime –

+0

我的意思是它像'17-09-2016'這樣的格式?顯示樣本日期。 –

回答

0

解析日期yyyy-MM-dd格式爲Date對象。 使用getTime方法獲取以毫秒爲單位的時間戳。

試試這個,

String strDateTime = "2016-09-17 11:21 PM"; 

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm aa"); 
long milliseconds = 0; 
try { 
    Date date = format.parse(strDateTime); 
    milliseconds = date.getTime(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

// pass milliseconds to the method 
DatabaseSource sched = new DatabaseSource(
     subject.getText().toString(), 
     description.getText().toString(), 
     milliseconds 
); 
+0

我忘記了strDateTime與時間連接,所以日期和時間都在strDateTime(字符串)中連接,所以可能的格式要保存在數據庫是這樣的(2016-09-17 11:21 PM)作爲數據庫中的DATETIME數據類型 –

+0

所以在strDateTime.toLong()的行中,這是正確的嗎?因爲另一個類的構造函數是這樣的(String,String,Long)? –

+0

檢查編輯。 –

0

使用此代碼Long.parseLong("0", 0);

這裏"0"是你的字符串值,0是默認值(櫃面如果字符串是數字格式爲空或不)