parseInt -> "202103122000" -> NumberFormatException

PierreDole

Mitglied
Moin,
ich stehe gerade aufm Schlauch.

Ich bekomme folgende Exception geworfen:
Caused by: java.lang.NumberFormatException: For input string: "202103122000"

Verstehe nicht, warum der Compiler hier meckert, ich sehe da nur Zahlen. :)

Hier der Code:
Java:
public int getGameDateTime()
    {
        String cleanStartTime = this.startTimeEastern.replace(" ET", "");       
        LocalTime startTime = LocalTime.now();
        
        
        try
        {
            startTime = LocalTime.parse(cleanStartTime, DateTimeFormatter.ofPattern("hh:mm a", Locale.US));           
        }
        catch (java.time.format.DateTimeParseException e)
        {
            startTime = LocalTime.parse(cleanStartTime, DateTimeFormatter.ofPattern("h:mm a", Locale.US));
        }

        
        String startDateTime = String.valueOf(this.startDateEastern) + startTime.format(DateTimeFormatter.ofPattern("HHmm"));
        
        
        return Integer.parseInt(startDateTime); // <- NumberFormatException
    }
 

PierreDole

Mitglied
@temi
Oh, verdammt! Ja, das war's. :)

@Thallius
Zum einen ist es ein Bestandteil einer URL und zum anderen ist es für mich leichter Daten damit zu vergleichen.
Zum Beispiel:
Java:
if(cacheDownloadDateTime < gameDateTime))
            scoreboard = NBA.getScoreboard(gameDate, Cache.FORCE_UPDATE);
 

temi

Top Contributor
Du kannst auch LocalDateTime vergleichen, z. B. mit isAfter() oder isBefore()

Generell ist es schon vorzuziehen, den passenden Datentypen zu verwenden, anstatt einen "unpassenden" Datentypen anders zu interpretieren.
 

PierreDole

Mitglied
Da ich gameDate als int bekomme, musste ich entweder das eine ins andere umwandeln oder umgekehrt. Habs jetzt als LocalDateTime. War ein kleines Gewurstel, da ich das Datum und die Zeit separat bekomme und LocalDateTime nur Datum und Zeit zugleich akzeptiert. Naja, jetzt läufts. :)
 

mrBrown

Super-Moderator
Mitarbeiter

Thallius

Top Contributor
Aber doch sicherlich nicht in der Form 202103122000, sondern als Epoch-Days o.ä? '202103122000' ist ein sehr dummes Format für'n Datum, weil das in der Form eben keine Zahl ist.




String ist im Vergleich zu einer (sinnvollen) Zahl einfach das deutlich dümmere Format.
2021-03-13 12:59:00

ist für mich deutlich sinnvoller als ein timestamp
 

mrBrown

Super-Moderator
Mitarbeiter
2021-03-13 12:59:00

ist für mich deutlich sinnvoller als ein timestamp
Das ist ein Timestamp, nur halt formatiert – was bei nahezu allem nur Nachteile mit sich bringt. Der einzige Vorteil ist ein minimaler Performance-Vorteil, wenn man das einfach nur blind durchschleift, den man sich damit erkauft, dass man nichts anderes sinnvolles machen kann, nicht mal Validierung ob es überhaupt ein Datum/Zeitpunkt ist.
 

PierreDole

Mitglied
Aber doch sicherlich nicht in der Form 202103122000, sondern als Epoch-Days o.ä? '202103122000' ist ein sehr dummes Format für'n Datum, weil das in der Form eben keine Zahl ist.
Ich krieg hier sämtliche Formate, die es wohl auf der Welt gibt. :D

startDateEastern: 20210312
startTimeEastern: "8:00 PM ET"

Habe ich mir nicht ausgedacht. :) Kommt aber noch schlimmer. Um es noch inkonsequenter zu machen, dachte sich die NBA, homeStartDate und visitorStartDate machen wir nicht in der Uhr-Uhrzeit, sondern in der Tagesuhrzeit und ohne Zeitzone:
homeStartTime: "2000".

Und der Veröffentlichungs-Timestamp der Json-Datei ist nochmal anders:
pubDateTime: "2021-03-13 11:50:54.782 EST".

Und weils so viel Spaß macht, noch ein anderes Format:
startTimeUTC: "2021-03-13T01:00:00.000Z"

Naja, man muss nehmen, was man bekommt. :)
 

mihe7

Top Contributor
Der einzige Vorteil ist ein minimaler Performance-Vorteil, wenn man das einfach nur blind durchschleift, den man sich damit erkauft,
dass Vergleiche ggf. wesentlich langsamer werden, weil bei Gleichheit 19 Zeichen verglichen werden müssen. Das mag im Programm nicht die große Rolle spielen, in der DB kann das richtig eklig werden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Regex zum Integer.parseInt Java Basics - Anfänger-Themen 4
W Fehler bei Integer.parseInt() Java Basics - Anfänger-Themen 4
F Erste Schritte parseint: cannot find symbol Java Basics - Anfänger-Themen 6
gstarplayer [Verständnisprobleme] Java next(),nextLine,nextInt und parseInt! Java Basics - Anfänger-Themen 22
J Integer.parseInt Java Basics - Anfänger-Themen 23
S ParseInt Problem Java Basics - Anfänger-Themen 8
J Datentypen Nachbilden der Methode Integer.parseInt Java Basics - Anfänger-Themen 5
T Integer.ParseInt Fehlerausgabe Java Basics - Anfänger-Themen 9
M Integer.parseInt String zerlegen Java Basics - Anfänger-Themen 6
M x = Integer.parseInt(in.readLine()) Java Basics - Anfänger-Themen 16
A int wert = Integer.parseInt(zeile); Java Basics - Anfänger-Themen 11
W parseInt Problem Java Basics - Anfänger-Themen 6
A Unterschied: parseInt und valueOf Java Basics - Anfänger-Themen 3
K parseInt wird nicht angenommen . Java Basics - Anfänger-Themen 19
S Integer.parseInt Java Basics - Anfänger-Themen 4
J parseInt Java Basics - Anfänger-Themen 3
L komischer Fehler (parseInt) Java Basics - Anfänger-Themen 2
G Strings addieren (ohne Integer.parseInt) Java Basics - Anfänger-Themen 9
S parseInt() Java Basics - Anfänger-Themen 11
C NumberFormatException: null ohne Ausnahmebehandlung stoppen Java Basics - Anfänger-Themen 7
Jascha NullPointerException vs NumberFormatException Java Basics - Anfänger-Themen 5
K Datentypen NumberFormatException Java Basics - Anfänger-Themen 7
Dogge NumberFormatException null Java Basics - Anfänger-Themen 5
O NumberFormatException Java Basics - Anfänger-Themen 2
D NumberFormatException Java Basics - Anfänger-Themen 13
M Compiler-Fehler Fehler Meldung java.lang.NumberFormatException: empty String Java Basics - Anfänger-Themen 2
D Interpreter-Fehler NumberFormatException Textfeld Java Basics - Anfänger-Themen 24
Furtano Variablen NumberFormatException Java Basics - Anfänger-Themen 14
N NumberFormatException, aber wieso? Java Basics - Anfänger-Themen 5
J Problem mit NumberFormatException Java Basics - Anfänger-Themen 6
M NumberFormatException Chat WordPress Java Basics - Anfänger-Themen 13
C NumberFormatException-Problem Java Basics - Anfänger-Themen 6
StupidAttack NumberFormatException Java Basics - Anfänger-Themen 19
M java.lang.NumberFormatException-Problem Java Basics - Anfänger-Themen 6
M BMI-Rechner NumberFormatException Java Basics - Anfänger-Themen 30
S NumberFormatException , mit Try/Catch? Java Basics - Anfänger-Themen 7
B NumberFormatException: For input string: "" Java Basics - Anfänger-Themen 4
S NumberFormatException Java Basics - Anfänger-Themen 13
K Fehler Meldung java.lang.NumberFormatException: empty String Java Basics - Anfänger-Themen 1
R Warum NumberFormatException? Java Basics - Anfänger-Themen 4
M Abfangen von java.lang.NumberFormatException Java Basics - Anfänger-Themen 6
J Double.parseDouble(s) wirft keine NumberFormatException Java Basics - Anfänger-Themen 12
G NumberFormatException bei double und long Java Basics - Anfänger-Themen 11
M for-Schleife mit NumberFormatException Java Basics - Anfänger-Themen 15
A NumberFormatException Java Basics - Anfänger-Themen 7
B komische NumberFormatException beim DezimalToBinär-Rechner Java Basics - Anfänger-Themen 4
B NumberFormatException Java Basics - Anfänger-Themen 5
F 2 numberformatexception abfangen? Java Basics - Anfänger-Themen 20
S java.lang.NumberFormatException Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben