1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

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

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von MetBo, 21.05.2011.

  1. MetBo, 21.05.2011 #1
    MetBo

    MetBo Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    264
    Erhaltene Danke:
    4
    Registriert seit:
    14.05.2010
    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: 21.05.2011
  2. maniac103, 23.05.2011 #2
    maniac103

    maniac103 Android-Lexikon

    Beiträge:
    1,237
    Erhaltene Danke:
    1,157
    Registriert seit:
    24.01.2011
    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.
     

Diese Seite empfehlen