SimpleDateFormat Datum umsetzen

  • Antworten:1
Robbiani Renato
  • Forum-Beiträge: 615

21.12.2019, 20:39:44 via Website

Hallo zusammen

Ich möchte den folgenden String "Tue Dec 24 00:00:00 MEZ 2019" zurück in ein Datum umwandeln. Doch sind bisher alle Versuche gescheitert.

Den Befehl erstelle ich wie folgt

SimpleDateFormat datumsformat = new SimpleDateFormat("E MMM dd h:m:s z yyyy");

In ein Datum umwandeln mache ich wie folgt

eins.dat_datum = datumsformat.parse(str_datum);

Doch es will einfach nicht funktionieren. Was muss ich als Datumsformat eingeben damit es klappt. Oder woran scheitere ich?

Hier noch der vollständige Code

package ch.robbisoft.sakristanhilfe;

import android.content.Context;
import android.os.Environment;
import android.widget.Toast;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.ListIterator;

public class Memory {

private Context ctx;

final static String fileName = "sakristan.dat";
final static String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/sakristan/" ;

/**********************************************************************************************
 * Konstruktor
 *
 * @author robbisoft  @since 29. Oktober 2019
 * @param Kontext von wo die Klasse aufgerufen wurde
 * @return
 * @exception
 * @throws
 **********************************************************************************************/
public Memory (Context context) {
    this.ctx = context;
}

/**********************************************************************************************
 * Legt die daten in den Speicher
 *
 * @author robbisoft  @since 30. Oktober 2019
 * @param Liste der Daten
 * @return
 * @exception
 * @throws
 **********************************************************************************************/
public void save (List<Eintrag> daten){
    //Daten packen
    String str_savedata = pack(daten);
    try {
        //Daten Speichern
        File file = new File(path + fileName);
        if (!file.exists()) {
            new File(path).mkdir();
            file.createNewFile();
        }
        FileOutputStream fileStream = new FileOutputStream(file, false);
        ObjectOutputStream os = new ObjectOutputStream(fileStream);
        os.writeUTF(str_savedata);
        os.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        Toast.makeText(ctx, "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
    } catch (IOException e) {
        e.printStackTrace();
        Toast.makeText(ctx, "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
    }
}

/**********************************************************************************************
 * List die Daten aus dem Speicher
 *
 * @author robbisoft  @since 30. Oktober 2019
 * @param
 * @return Liste der Daten
 * @exception
 * @throws
 **********************************************************************************************/
public List<Eintrag> load(){
    List<Eintrag> inhalt = new ArrayList<Eintrag>();
    String str_daten = "";
    try {
        FileInputStream fileInputStream = new FileInputStream(new File(path + fileName));
        ObjectInputStream oInputStream = new ObjectInputStream(fileInputStream);
        str_daten = oInputStream.readUTF();
        if( str_daten.length() > 1 ) {
            inhalt = entpack(str_daten);
        }
        oInputStream.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        Toast.makeText(ctx, "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
    } catch (IOException e) {
        e.printStackTrace();
        Toast.makeText(ctx, "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
    }
    return inhalt;
}

/**********************************************************************************************
 * Packt die Daten in einen String
 *
 * @author robbisoft  @since 30. Oktober 2019
 * @param Liste der Daten
 * @return String der gepackten Daten
 * @exception
 * @throws
 **********************************************************************************************/
private String pack(List<Eintrag> daten){
    String str_daten = "";
    for(Eintrag inhalt : daten){
        str_daten += inhalt.dat_datum.toString() + "#";
        str_daten += inhalt.str_text + "#";
    }
    return str_daten;
}

/**********************************************************************************************
 * Stellt die Stringdaten in eine Liste
 *
 * @author robbisoft  @since 30. Oktober 2019
 * @param String der Daten
 * @return Liste der Daten
 * @exception
 * @throws
 **********************************************************************************************/
private List<Eintrag> entpack(String daten){
    List<Eintrag> inhalt = new ArrayList<Eintrag>();
    Eintrag eins;
    String str_datum, str_text;
    int n_x = 0;
    SimpleDateFormat datumsformat = new SimpleDateFormat("E MMM dd h:m:s z yyyy");

    do{
        str_datum = "";
        while ('#' != daten.charAt(n_x)){
            str_datum += daten.charAt(n_x);
            n_x++;
        }
        n_x++;
        str_text = "";
        while ('#' != daten.charAt(n_x)){
            str_text += daten.charAt(n_x);
            n_x++;
        }
        n_x++;
        eins = new Eintrag();
        try {
            eins.dat_datum = datumsformat.parse(str_datum);
        } catch (ParseException e) {
            e.printStackTrace();
            Toast.makeText(ctx, "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
        }
        eins.str_text = str_text;
        inhalt.add(eins);
    }while ( n_x < daten.length() );

    return inhalt;
}

}

und die Klasse

package ch.robbisoft.sakristanhilfe;

import java.util.Date;

public class Eintrag {
Date dat_datum;
String str_text;
}

Gruss Renato

Kommentieren
Robbiani Renato
  • Forum-Beiträge: 615

21.12.2019, 21:33:02 via Website

Sorry habe eine Lösung gefunden. Ich schreibe nun wie folgt

str_daten += dateFormat.format(inhalt.dat_datum )

so kann ich es formatiert wieder auslesen.

Gruss Renato

Hilfreich?
Kommentieren