2017-06-05 52 views
-1

我正在開發一個使用數據庫的Android應用程序,每當用戶插入一個新的寄存器當前數據和時間保存在分貝使用如何使用SimpleDateFormat.parse()將Calendar.toString()轉換爲日期?

Calendar cal = Calendar.getInstance();

所以,當我從數據庫中檢索數據,得到了這樣的字符串:

java.util.GregorianCalendar中的[時間= 1496007575129,areFieldsSet = TRUE,寬鬆= TRUE,區=美洲/墨西哥城,Firstdayofweek可= 1,minimalDaysInFirstWeek = 1,ERA = 1,YEAR = 2017,MONTH = 4,WEEK_OF_YEAR = 22,WEEK_OF_MONTH = 5,DAY_OF_MONTH = 28,DAY_OF_YEAR = 148,DAY_OF_WEEK = 1,DAY_OF_WEEK_IN_MONTH = 4,AM_PM = 1,HOUR = 4,HOUR_OF_DAY = 16,MINUTE = 39,SECOND = 35,微差= 129,ZONE_OFFSET = -21600000,DST_OFFSET = 3600000]

問題是當我嘗試使用轉換該SimpleDateFormat.p字符串屁股來顯示它在一個RecyclerView,我總是相同的日期:09/04/2017。

這是我RecViewAdapter.java代碼:

@Override 
public void onBindViewHolder(ViewHolder holder,int position){ 
    items.moveToPosition(position); 

    String s,d,p,f; 


    s = items.getString(ConsultaTomas.SISTOLICA); 
    holder.systolica.setText(s); 

    d = items.getString(ConsultaTomas.DIASTOLICA); 
    holder.diastolica.setText(d); 

    p = items.getString(ConsultaTomas.PULSO); 
    holder.pulso.setText(p); 

    f = items.getString(ConsultaTomas.FECHA); 
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); 

    try { 
     holder.fecha.setText(sdf.format(sdf.parse(f))); 

    }catch (ParseException e){ 
     Log.d("PARSINGFECHA","Error al parcear fecha"); 
    } 


} 

其他數據在RecView正確顯示和日曆字符串都diferent,所以沒有相同的日期/時間在這些字符串。所以,問題是:

如何使用SimpleDateFormat.parse()將Calendar.toString()轉換爲日期?

這是一個真正的設備上運行應用程序的結果: two muppets

回答

1

您需要修改您存儲Calendar的方式,呼籲getTime(),並根據需要首先進行格式化。例如,

Calendar cal = Calendar.getInstance(); 
DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); 
System.out.println(sdf.format(cal.getTime())); 
+0

感謝您的解決方案,其實我保存在BD的cal.getTime()值和我值轉換爲一個日期時,該查詢轉接而成。 –