2016-09-18 19 views
0

(MM dd、yyyy、HH:mm [AM/PM])の形式で保存された日付/時刻文字列を変換しようとしていますが、これは日付/時刻文字列を作成するためにpostに従っています。私の現在のコードは、正しく格納された日付時刻を取得しますが、私はそれを解析し、日付オブジェクト "d"を表示しようとすると、私はnull出力を取得します。Android - 日付/時刻文字列を日付と時刻の整数に変換するにはどうすればよいですか?

Javaコード:

public void loadExamData(Cursor cursor) { 
    exam.setText(cursor.getString(1)); 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    try { 
     Date d = sdf.parse(cursor.getString(2)); 
    } catch (ParseException ex) { 
     Logger.getLogger(edit_exam_form.class.getName()).log(Level.SEVERE, null, ex); 
    } 

    location.setText(cursor.getString(3)); 
} 
+0

もっと簡単な方法は、UNIXのタイムスタンプを保存することです。そのようにすれば、取得時に必要なことを行うことができます。 –

+2

SimpleDateFormat.parse()はエラー時にnullを返します。 sdfを初期化する書式文字列がカーソルの文字列と一致していますか? –

答えて

0

まず、現在のパターンと日付の文字列を解析して、ご希望のパターンでそれをフォーマットする必要があります。

たとえば、現在の日付文字列が[10/10/2016 14:30]のようなものである場合、

String curDate = "10/10/2016 14:30"; 
SimpleDateFormat curDateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm"); 
SimpleDateFormat desiredDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
try { 
    Date date = curDateFormat.parse(curDate); 
    String desiredDate = desiredDateFormat.format(date); 
    // you can use this date string now 
} catch (Exception e) {}