- Forum-Beiträge: 9
01.08.2012, 15:04:22 via Website
01.08.2012 15:04:22 via Website
Ich habe ein kleines Problem, beim parsen eines Datums von String in ein Datum..... kurze erleuterung des Problems:
- Ich übergebe der Methode ParseDatafield(String Datum) ein String der er mir dann in ein Datum und danach in Milisekunden umwandeln soll.
- an und für sich kein Problem habe das vorher mit dem exakten Code bereits gemacht und er gibt mir auch die korrekten Werte zurück, leider habe ich dies in einem Java Projekt gemacht un dachte mir ich kann das 1 zu1 auch in Android einsetzen.
- der Compiler gibt mir zeigt mir keinen Fehler, da diese Klasse im Android Projekt noch nicht nutzen kann da die Entwicklung der ganzen App noch nicht so weit ist habe ich mir gedacht isch schreibe eine Android JUnit Test Projekt das auch tadelos funktioniert.
- So nun habe ich die dazugehörigen Assert Tests dazu geschrieben und laufen lassen leider bekomme ich eine ungewöhnliche Fehlermeldung von dem Test Ergebnis: java.text.ParseException: Unparseable date: "08/05/2012 5:00PM" (at offset 15)
at java.text.DateFormat.parse(DateFormat.java:626)
Ich dachte mir ok, da habe ich was falsches implementiert..... aber leider komme ich nicht darauf was es sein könnte da es im Java Projekt 1 zu 1 genau so läuft da bekommen ich kein ParseException.
Hier noch ein wenig Code damit ihr wisst von was ich spreche:
Klasse ParsingString:
2
3import java.text.DateFormat;
4import java.text.ParseException;
5import java.text.SimpleDateFormat;
6import java.util.Date;
7
8/**
9 * @author Emanuel
10 *
11 *Diese Klasse wir benötigt um das Datenbank feld start und Ende zu parsen und in milisekunden
12 *umzuwandeln damit dieser Wert in die Android SQL geschrieben wird um damit zu arbeiten
13 */
14
15public class ParsingString implements ParseService {
16
17 //Attribute für das Parsen
18 private DateFormat dateFormat;
19 private String[] parseResult;
20
21 public ParsingString(){
22
23 dateFormat = new SimpleDateFormat("dd/MM/yyyy h:mma");
24 }
25
26
27
28 /**
29 * Die Methode parst das Datum und Zeitformat der von der
30 * Online Datenbank gegeben wird und gibt das Datum und die
31 * genaue Uhrzeit als Milisekunden seit dem 01.01.1970 zurück
32 *
33 * @param date
34 * @return long
35 * @throws ParseException
36 */
37
38 public long ParseDatafield(String date) throws ParseException {
39
40 long timestamp = 0;
41
42 parseResult = date.split(" ");
43 String s = parseResult[0]+"/"+parseResult[1]+"/"+parseResult[2]+" "+parseResult[4];
44
45 Date datum = dateFormat.parse(s);
46 timestamp = datum.getTime();
47
48 return timestamp;
49 }
50
51}
Klasse ParseStringTest: Die Methode testStringParsing()
2
3import ch.zbwstundenplan.parsingService.*;
4
5import junit.framework.Assert;
6import android.test.AndroidTestCase;
7
8public class ParseStringTest extends AndroidTestCase {
9
10 private long timestamp;
11 private String data;
12 private ParsingString sp = new ParsingString();
13
14 public void testStringParsing()throws Throwable {
15
16 timestamp = 1336489200000L;
17 data = "08 05 2012 5:00PM";
18
19 Assert.assertEquals(Long.valueOf(timestamp), Long.valueOf(sp.ParseDatafield("08 05 2012 5:00PM")));
20 }
21
22 public void testGetDateFromMili()throws Throwable {
23
24 timestamp = 1336489200000L;
25
26 Assert.assertEquals("Mai 08,2012 17:00", sp.GetDateFromMilisec(timestamp));
27
28 }
29}
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.