String dateTime in Date -> prüfen Sie, ob wird heute

Brauche ich eine Funktion, die prüft, ob ein Datum in einem rss-feed (einer Veranstaltung) ist heute. Der rss gibt eine Zeichenfolge (CDATA), so muss ich analysieren. Die form dieses Datum ist:

Wed, 01 Aug 2012 00:00:00 +0002

wo die Uhrzeit und die Zeitzone sind nutzlos, nur das Datum zählt.

Dachte ich: ich-format das Datum von heute (set Telefon Datum falsch für die Prüfung) im selben format wie die Eingabe-Zeichenfolge und testen Sie gleich sind. Aber anscheinend ist die Sprache, die Einstellungen des Gerätes sind wichtig, denn ich bekam:

 Wed, 01 Aug 2012 00:00:00 +0002 = wo, 01 aug. 2012 14:36:55 +0200

(ich würde eine Teilzeichenfolge verwenden, um loszuwerden, die Zeit).
So funktioniert das nicht.

Nun versuchte ich einen neuen Weg, aber es scheint ein bisschen zu kompliziert:
Get-string --> konvertieren in date - --> formatieren von Datums-string in der form ttmmjjjj -->
- format heute zu einem string in der form ttmmjjjj -->
testen Sie, ob Sie gleich sind.
Aber aus irgendeinem Grund nicht funktioniert, entweder, weil das Parsen von string auf Datum funktioniert nicht. Aber ich dachte, mein format war genau das gleiche...
Hat jemand eine Idee, wie dies zu erreichen, oder was ich ändern sollte?

mein code:

public boolean isAgendaToday(String inputstring){
          boolean isToday = false;
          SimpleDateFormat  format = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z");  
            Date deventDate = null;
            String seventDate;
             Date dtoday = new Date();
             String stoday;
             SimpleDateFormat dateOnly = new SimpleDateFormat("ddMMyyyy");
             stoday = dateOnly.format(dtoday);
             try {  
                deventDate = format.parse(inputstring); 
                seventDate = dateOnly.format(deventDate);
                 System.out.println(seventDate + " = " + stoday);
                if(stoday.equals(seventDate)){
                     isToday = true;
                 }
            } catch (ParseException e) {  
                //TODO Auto-generated catch block  
                e.printStackTrace();  
            } catch (java.text.ParseException e) {
                //XXX Auto-generated catch block
                e.printStackTrace();
            }

        return isToday;

      }

Dies ist, was die log sagt nach jedem mal, wenn ich versuche diese (mit unterschiedlichen Daten natürlich):

java.text.ParseException: Unparseable Datum: Tue, 31 Jul 2012 00:00:00 +0002

  • Werfen Sie einen Blick auf stackoverflow.com/questions/2705548/..., mit dem Datum verfügbar ist, können Sie nur prüfen, ob es den aktuellen Tag
  • Ich würde bestreiten, dass die Zeit zone ist irrelevant - meine Vorstellung von "heute" kann nicht das gleiche wie deins.
  • ich will nur vergleichen, Termine, und da von das Datum von meinem Handy ist abhängig von der Zeitzone; die timezone, die ich von der RSS ist irrelevant.
  • Es hängt davon ab, was Sie versuchen zu erreichen - aber wenn Sie versuchen zu bestimmen, ob etwas gebucht wurde, die in Ihrem lokalen "heute" dann brauchen Sie Sie nicht zu nehmen Sie die RSS-Zeitzone berücksichtigen, da willst du zuerst beheben, dass eine absolute Zeit. Sie können dann heraus, dass die absolute Zeit in Ihrem Telefon Zeit-zone, und sehen, ob das heute.
  • Du hast Recht, danke für mitdenken. Aber im Kontext dieser Anwendung ist es nicht wirklich wichtig, aber für die Genauigkeit der reinen Nutzung der Methode berücksichtigt werden sollte.
InformationsquelleAutor Jasper | 2012-07-31
Schreibe einen Kommentar