[Erledigt] Datenbank-Select mit Datumabfrage - abhängig von Sprache?

MetBo

MetBo

Erfahrenes Mitglied
4
Hey,

ich habe einen Newsreader entwickelt und speichere alle News in einer Datenbank. Die News selektiere ich z.B. mit dieser Funktion aus der Datenbank:

Code:
public List<Article> getArticleListNew() throws SQLException {
		DateFormat df = new SimpleDateFormat("dd.MM.yyyy");
		String d = df.format(new Date());
		
		List<Article> articleList = new ArrayList<Article>();
		Cursor c;

		c = mDatabase.query(T_ARTICLE_NAME, 
		                    COLUMNS_ARTICLE, 
		                    T_ARTICLE_SDATE + "='" + d + "'",
//		                    T_ARTICLE_SDATE + "=strftime(\"%d.%m.%Y\",'now','localtime')",
		                    null, null, null, 
		                    T_ARTICLE_STIME + " desc");
		
		c.moveToFirst();
		
		if (!c.isAfterLast()) {
			do {
				Article article = new Article();
				article = getArticleValues(c);
				articleList.add(article);
			} while (c.moveToNext());
		}
		
		c.close();
		
		return articleList;
	}

Die Selectabfrage sieht z.B. so aus:
Code:
SELECT articleid, headline, headlineshort, subheadline, abstracttext, url, urlmob, metaurl, author, date, stime, sdate, images, leadimgurl, leadimgwidth, leadimgheight, text, fav, read, top, headlinefull FROM article WHERE sdate='21.05.2011' ORDER BY stime desc

Nun berichten einige Benutzer, wenn sie die Sprache ihres Systems auf Englisch (en-US) umstellen, dass sie dann keine News angezeigt bekommen.

Einen Fehlerbericht gibt es nicht, da kein Fehler im Sinne von FC entsteht.


Nun konnte ich das Problem schon lokalisieren. Es liegt anscheinend an dem Query ... Aber wieso?? Ich habe keine sprachenspezifische Attribute eingebaut ...


Ist euch auch schon einmal dieses "Phänomen" aufgefallen? Kennt jemand eine plausible Erklärung bzw. Lösung?


Vielen Dank,
Grüße

Edit: Auf meinem SGS2 (Android 2.3.3) konnte ich das Phänomen nicht reproduzieren!! Im Emulator (Android 2.2) aber schon ...





EDIT: Hat sich erledigt!! Das lag gar nicht an dem Select, sondern beim Einfügen der News in die Datenbank habe ich ein Datum (ohne Datumsformat) mitgegeben ..... Beim Ändern der Sprache war das Datum beim Einfügen in die DB "MM dd yyyy" ... Meine Abfrage hatte aber das Datum "dd mm yyyy". Da kann ja nichts produktives herauskommen ;). Ich habe jetzt beim Einfügen auch ein Datumsformat und siehe daaa! es funktioniert.
 
Zuletzt bearbeitet:
Die richtige[TM] Lösung wäre allerdings, die Zeit nicht als String, sondern als Timestamp zu speichern. Dann hättest du solche Probleme nicht und könntest jegliches Datumsformat oder auch andere Zeitzonen ohne Aufwand unterstützen.
 

Ähnliche Themen

M
  • mafoma63
Antworten
2
Aufrufe
757
swa00
swa00
S
Antworten
33
Aufrufe
2.646
Sempervivum
S
S
Antworten
17
Aufrufe
549
jogimuc
J
Zurück
Oben Unten