Datum formatieren (MM/DD/YYYY)

  • VBScript

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von MHAS.

    Datum formatieren (MM/DD/YYYY)

    Hallo zusammen,

    könnt ihr mir bitte bei folgendem Problem weiterhelfen?

    ich würde mir gerne das aktuelle Datum ausgeben lassen (nicht als MSGBOX) undzwar im Format MM/DD/YYYY.
    Alles was ich bisher im Netz gefunden habe hat mir irgendwie nicht so recht weitergeholfen.

    VB.NET-Quellcode

    1. Dim Fenster, F
    2. Set F = CreateObject("WScript.Shell")
    3. F.AppActivate "Dokument1 - Microsoft Word"
    4. Set F = Nothing
    5. WScript.Sleep 500
    6. set Datum = CreateObject("WScript.Shell")
    7. Datum.SendKeys date
    generell Datetime-Funktionen in VBScript
    Hier bei den Beispielen ist Nr. 3 genau das Ausgabeformat, was du auch haben möchtest.

    Ist daran was auszusetzen?

    Lg, Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Danke für die schnelle Antwort.

    sieht soweit gut aus auf dem Link, bei der umsetzung hapert es bei mir aber leider....

    Die Ausgabe ist Word ist hierbei

    False

    VB.NET-Quellcode

    1. Dim Fenster, F
    2. Set F = CreateObject("WScript.Shell")
    3. F.AppActivate "Dokument1 - Microsoft Word"
    4. Set F = Nothing
    5. WScript.Sleep 500
    6. set Datum = CreateObject("WScript.Shell")
    7. Datum.SendKeys date = vbShortDate


    Gruß,
    MHAS
    Naja also in abgespeckter Form und mit MsgBox würde das ja nur so aussehen:

    Quellcode

    1. ​d=CDate(Now())
    2. MsgBox(FormatDateTime(d, 2))


    Jetzt kannst du dir überlegen, ob du das so in deine Applikation mit verwenden kannst bzw. wo es genau bei dir hapert..

    LG, Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Dadurch wird mir jetzt das heutige Datum angezeigt, doch leider nicht in dem richtigen Format.

    Es ist immernoch [line]dd.mm.yyyy [/line]und nicht [line]mm/dd/yyyy[/line]

    Irgendwie ist das sehr komisch, laut deinem Link sollte ja [line]mm/dd/yyyy [/line]rauskommen.


    Gruß,
    MHAS
    stimmt. ist mir vorhin beim testen entfallen.
    Ähm. Ja. der Rest im Netz ist wirklich nicht so schön, aber schau mal hier. Er verwendet im vbs quasi den .NET StringBuilder mit dem das ganz gut funzt.
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Okay, das funktioniert jetzt in der MSGBOX mit dem richtigem Format.

    Aber irgendwie blick ich das nicht wirklich, wie ich das jetzt als normale Ausgabe mache in dem Word Dokument...
    Kann aber auch daran liegen, dass ich mich erst vor wenigen Tagen angefangen habe mit VBS auseinander zu setzen :D

    Acr0most hättest du bzw. jemand anders eine Lösung für mich? :)

    Gruß,
    MHAS

    MHAS schrieb:

    wie ich das jetzt als normale Ausgabe mache in dem Word Dokument
    Kannst du mal näher beschreiben, was es mit dem Word-Dokument auf sich hat?
    Ist das ein Dokument, das auf Platte liegt und du verändern möchtest?
    Ist das ein Dokument, das zufällig gerade offen auf dem Desktop ist?

    Beschreib bitte mal dein eigentliches Problem.
    Möglicherweise gibt es da wesentlich elegantere Methoden als SendKeys.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    [/quote]Kannst du mal näher beschreiben, was es mit dem Word-Dokument auf sich hat?
    Ist das ein Dokument, das auf Platte liegt und du verändern möchtest?
    Ist das ein Dokument, das zufällig gerade offen auf dem Desktop ist?

    Beschreib bitte mal dein eigentliches Problem.
    Möglicherweise gibt es da wesentlich elegantere Methoden als SendKeys.[/quote]

    Ich würde gerne das Aktuelle Datum im Format mm/dd/yyyy in einem Tool als Text ausgeben.
    Das Word Dokument ist hierbei nur zu Testzwecken drin. Später wird es durch das eigentliche Tool, das angesprochen werden soll, ersetzt.

    Momentan funktioniert es, dass ich das aktuelle Datum über SendKeysaus gebe.
    Hierbei wird aber das Format dd.mm.yyyy genutzt. Das Tool lässt aber nur das Format mm/dd/yyyy zu.

    MHAS schrieb:

    Später wird es durch das eigentliche Tool, das angesprochen werden soll, ersetzt.
    Ist das Tool von dir programmiert oder ist es eine Closed Box?
    Wenn du es erweitern kannst, wäre eine Interprozesskommunikation über Pipes die eleganteste Lösung.

    MHAS schrieb:

    Das Tool lässt aber nur das Format mm/dd/yyyy zu.
    Im Link von Post #6 sind ja mehrere Varianten angegeben, das Datum auch mit deutschen Regional Settings als amerikanisches Datum zu formatieren.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Ist das Tool von dir programmiert oder ist es eine Closed Box?


    Es geht hierbei um ein Firmeninternes Tool, ich habe bei dem Tool leider keine Änderungsmöglichkeiten.


    Im Link von Post #6 sind ja mehrere Varianten angegeben, das Datum auch mit deutschen Regional Settings als amerikanisches Datum zu formatieren.


    Das mag sein, doch leider muss ich zu meiner Schande gestehen, dass ich als blutiger Anfänger damit nicht weiterkomme....


    Bei dem Link wäre FormatDateTime(date,2) ja das Format was ich benötige, nur hapert es bei mir mit der implementierung:



    VB.NET-Quellcode

    1. set Datum = CreateObject("WScript.Shell")
    2. Datum.SendKeys date FormatDateTime(date,2)

    MHAS schrieb:

    Bei dem Link wäre FormatDateTime(date,2) ja das Format was ich benötige
    Nein.
    FormatDateTime verwendet die regionalen Settings deines Systems.
    Aber die in dem Link beiden Beispiele darüber ergeben eine brauchbare Lösung für dich.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    FormatDateTime verwendet die regionalen Settings deines Systems.
    Aber die in dem Link beiden Beispiele darüber ergeben eine brauchbare Lösung für dich.


    Ach steht da ja....


    okay, könntest du oder jemand anders mir noch bitte bei dem Code helfen?
    Ich bekomme leider immernoch Flase als Ausgabe....

    VB.NET-Quellcode

    1. set Datum = CreateObject("WScript.Shell")
    2. Datum.SendKeys date = Right("0" & Month(Date), 2) & "/" & Right("0" & Day(Date), 2) & "/" & Right(Year(Date), 4)




    EDIT:

    Okay ich hab es herausbekommen. Was eine schwere Geburt :D.

    Danke für die Hilfe :).

    Hier ist der Code, vllt hilft es irgendwann mal jemanden.

    VB.NET-Quellcode

    1. set D = CreateObject("WScript.Shell")
    2. Datum = Right("0" & Month(Date), 2) & "/" & Right("0" & Day(Date), 2) & "/" & Right(Year(Date), 4)
    3. D.SendKeys Datum


    Gruß,
    MHAS

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „MHAS“ ()