Datum/Zeit konvertieren für Dateipfad

  • Hallo Profis,

    ich benütze folgenden Code um eine Logdatei zuerstellen:

    Code
    Global $sFilepath = ".\BBC-" & $Date & $sTime & "-" & $Comp & ".log" ; DateiPfad aus Namenssuffix, Datum, Uhrzeit und Computername
    
    If Not FileWrite($sFilepath, $Time & ", " & $Date & @CRLF & @CRLF & "Computer: " & $sModelvendor & " " & $sComputermodel & @CRLF & "Devicename: " & $Comp & @CRLF) Then
        MsgBox($MB_SYSTEMMODAL, "", "Error: Log-file could not be created") ; hiermit schreibe ich Daten in die Datei
    EndIf


    Wenn ich das Proggi auf Rechnern mit deutscher Systemzeit einsetze alles gut. Wenn aber englische Systemzeit(Systemlocale) eingestellt ist,
    kann die Datei nicht erzeugt werden, da das Datum z.B. so ausgegeben wird: 10/29/2019(/ nicht für Pfadangaben erlaubt).

    Wie kann man am elegantesten das Datum als 29.10.2019 ausgeben, egal welche Systemlocale eingestellt ist?

    • Offizieller Beitrag

    Verwende die Makros und baue dir dein Datum selbst zusammen:

    $sToday = @MDAY & '.' & @MON & '.' & @YEAR

    Es ist aber übersichtlicher, wenn man das Datum in der Form "YYYY-MM-DD" verwendet. In einer Liste ist es dann nämlich sortierbar, und Punkte dürfen zwar in den Dateinamen, haben m.M. nach dort nichts zu suchen. In der Windowswelt geht man ja davon aus, dass eine Datei ein Suffix hat (was für ein Stuß). Somit würde der letzte Punkt das Suffix vom Dateinamen trennen. Es werden aber häufig auch Dateien ohne Suffix genutzt und dann wäre ein Punkt im Dateinamen kontraproduktiv.

  • In dem du Tag, Monat und Jahr vorher getrennt betrachtest und dann zum $Date zusammen setzt. Mir bekannte Datumstrennzeichen sind "." "," "/" ":" "-"

    z.B.: YYYYMMDD oder YYYY-MM-DD oder oder oder

    Tipp: Packe das Jahr nach vorne und den Tag nach hinten, dann kannst du die Dateien besser sortieren.

    Menno Bugfix ;P

    Einmal editiert, zuletzt von Moombas (29. Oktober 2019 um 14:22)

  • Hallole Zusammen,

    zunächst vielen lieben Dank an euch für die Denkanstöße. Da das Proggi international eingesetzt werden soll, werde ich wohl nicht umhin kommen
    dass Datum und die Uhrzeit selbst zusammen zu bauen.

    Ich hoffte es gäbe eine Funktion oder so die mir das abnimmt...:(

    Thema also erledigt

  • Hallole nochmal,

    Warum kommt bei folgendem Code:

    Code
    $Time = @HOUR & ":" & @MIN & ":" & @SEC

    die Ausgabe 14-52-30 anstatt 14:52:30 ???

    Bei mir nicht !

    EDIT hipfzwirgel : Was liefert den

    AutoIt
    Local $Time = @HOUR & Chr(58) & @MIN & Chr(58) & @SEC
    ConsoleWrite(' $Time = ' & $Time & @CRLF)

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • :Face::Face::Face::Face::Face:

    Global $sTime = StringReplace($Time, ":", "-") ist schuld. Hab ich dämlicher Holzkopf übersehen. :rofl::rofl::rofl::rofl:

    au mann....

    stammt noch aus dem Code vorher und passt jetzt mit zusammengebautem Datum/Zeit natürlich nicht mehr....

    Thema erledigt.:thumbup: