
- Forum-Beiträge: 669
21.12.2019, 20:39:44 via Website
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