Fox hat keine eingebaute Funktion convert()
genannt, noch kann es Ihre Nicht-Standard-Datum Griff/Zeit String Format direkt.
Eine schnelle und schmutzige Art und Weise einen String foo
im gegebenen Format ("YYYY-MM-DDThh: mm: ss") zu konvertieren zu einem Datum/Zeit-Wert
ctot("^" + chrtran(foo, "T", " "))
Das Caret markiert den Eingang als lokales unabhängiges Standardformat, das sich von dem Eingabeformat nur dadurch unterscheidet, dass ein Leerzeichen anstelle eines "T" vorhanden ist.
Sie können das Datum Teil aus diesem Extrakt über die ttod()
Funktion oder einfach nur den Datumsteil aus der Zeichenfolge extrahieren und konvertieren:
ctod("^" + left(foo, 10))
Fox Kontrollen - einschließlich der in einem Raster - in der Regel verwenden die konfiguriertes Windows-Systemformat (unter der Annahme, dass set("SYSFORMATS") == "ON"
); Sie können dies überschreiben, indem Sie mit dem Befehl SET DATE
spielen.
Es scheint keine maskenbasierte Datumsformatierung wie in den meisten anderen Sprachen zu geben. dtoc()
und ttoc()
nehmen keine Formatzeichenfolgen, transform()
nimmt eine Formatzeichenfolge aber ignoriert es für Datumswerte.
Ich weiß, dass Sie möglicherweise nicht in der Lage, dies zu ändern, aber es gibt keinen Grund, eine Datetime in einem Zeichenfeld zu speichern. Wenn Sie ein Datetime-Feld hätten, wäre das einfach. –