- Forum-Beiträge: 615
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
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.