VBScript - String in DateTime (zum späteren Rechnen mit Datumswerten)

rheini

Grünschnabel
Hallo,

ich bin schier am verzweifeln. Ich versuche seit geraumer Zeit einen String in bestimmtem Format (YYYYMMDD HH24MMSS) in eine Datumsvariable zu quetschen und scheiter kläglich :(

Ich habe mich an CDate(), FormatDate(), Format$() und FormatDateTime() versucht. Is nich. Bin zu doof.

Weiß jemand Rat?
 
Wie sieht den der String aus und was hast du mit den oben genannten Anweisungen gemacht?

Ist der String in Form von "YYYMMDD HHMMSS" formatiert oder soll der String in dieses Format umgewandelt werden?

Wenn du kläglich scheiterst, wird dann ein Fehler ausgegeben oder bekommst du nur ein falsches Ergebnis?

Fragen über Fragen.
 
Hallo tombe,
erst mal danke für die Antwort.

Der String ist in genanntem Format (YYYYMMDD HH24MMSS). Allerdings wäre ich auch in der Lage, diesen umzubaun, auf ein anderes Format. Die Jahreszahl ans Ende zu packen z. B..

Die Fehlermeldungen, die ich erhalte sind allesamt Laufzeitfehler. Bei CDate() verwende ich eine falsche Anzahl an Attributen, was wohl heisst, dass der Kollege keine Formatangabe mag. Aber woher weiß die Funktion denn dann, was für ein Format das angegebene Datum (der String) hat. Holt sie sich das ausm System? Denn die Amis verwenden als Standarddatenformat ja z. B. MMDDYYYY.

Deshalb denke ich, muss es doch eine Funktion geben, die einen String aufnimmt, eine Formatangabe und das dann zum Datum konvertiert ...
 
Wenn du den String formatieren kannst, dann verpasse ihm mal Trennzeichen zwischen den einzelnen Angaben.

So klappt es bei mir:

Visual Basic:
Dim text As String
Dim datum As Date

text = "2011-08-10 15:01:45"

datum = CDate(text)

If IsDate(datum) Then
    MsgBox (datum & " ist gültig")
Else
    MsgBox (datum & " ist ungültig")
End If

Das Problem bisher war wohl das keine der Funktionen erkennen kann was im String das Datum sein soll. Es ist mehr oder weniger eine große Zahl und die kann nicht ungewandelt werden.
 
Zuletzt bearbeitet:
Also alles was ich zum Thema "Text/String in Datum umwandeln" setzt vorraus das der Text bereits formatiert ist. Sonst ist die Konvertierung nicht möglich.

Ein anderer Weg wäre:

Visual Basic:
Dim text As String
Dim datum As Date

text = "20110811 091530"

datum = DateSerial(Mid(text, 1, 4), Mid(text, 5, 2), Mid(text, 7, 2)) & " " & TimeSerial(Mid(text, 10, 2), Mid(text, 12, 2), Mid(text, 14, 2))

If IsDate(datum) Then
    MsgBox (datum)
Else
    MsgBox ("Kein gültiges Datum")
End If

Hier ist ein Beitrag bei dem es um genau das gleiche Problem geht wie du es jetzt hast.
 
Ja, diesen Beitrag hatte ich auch gefunden. Mittlerweile läuft mein Script auch. Aber ich dachte , es muss doch eine derartige Funktion geben. Das zeigt mal wieder , dass Wunsch != Wirklichkeit :)
 

Neue Beiträge

Zurück