Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Powershell - locale Problem bei get-date

Frage Entwicklung Batch & Shell

Mitglied: rana-mp

rana-mp (Level 1) - Jetzt verbinden

17.06.2011 um 13:02 Uhr, 6893 Aufrufe, 5 Kommentare

Wie kann ich bei Uebergeben eines Datums als String an get-date angeben in welchem Format das Datum ist?

Hallo zusammen,

ich mache in der Powershell folgende Zuweisung:

01.
$datum = get-date "10.06.2011"
Grundsaetzlich funktioniert das gut, der String wird in ein Date-Time Objekt umgewandelt mit dem ich dann weiterarbeiten kann. Ich habe jetzt aber das Problem, das auf dem System auf dem das script laufen soll, auf englisch (US-EN) ist, also auch das englische Datumsformat in der Systemsteuerung definiert ist. Das kann ich nicht aendern.
Powershell interpretiert mir den String also als Datum im amerikanischem Format als mm.dd.yyyy.
Da die Strings die ich dem Script uebergebe das Datum aber im deutschen Format dd.mm.yyyy enthalten, bekomme ich im besten Fall eine Fehlermeldung (wenn ich zB 14.06.2011 uebergebe) oder falsche Werte wenn ich mit dem Datum arbeiten will, zB. wenn ich $datum.dayofyear aufrufe.

In der Powershell Dokumentation habe ich leider nicht gefunden wie ich bei einer solchen Zuweisung das Format angeben kann. Ich habe einige Sachen mit -uformat und -format getestet, aber leider funktioniert es nicht.


Gruss,

rana-mp
Mitglied: Friemler
17.06.2011 um 13:14 Uhr
Hallo rana-mp,

schau mal hier nach.

Gruß
Friemler
Bitte warten ..
Mitglied: rana-mp
17.06.2011 um 13:44 Uhr
Hallo Friemler,

Leider hilft mir das nicht so richtig weiter. Die Datumsformatierungen scheinen wohl nur bei der Ausgabe eines Datums zu greifen. Das hilft dann leider nicht wenn schon bei der Eingabe das Datum flasch vom System interpretiert wird.

Wenn ich zB. dieses versuche:

01.
get-date  "14.11.2011" -format "dd.MM.yyyy"
bekomme ich eine Fehlermeldung:
01.
Get-Date : Cannot bind parameter 'Date'. Cannot convert value "14.11.2011" to type "System.DateTime". Error: "String was not recognized as a valid DateTime."
Bei einem Datum wie zB. dem 10.06.2011 bekomm ich keine Fehlermeldung, aber wenn ich das Datum dann ausgebe ist, wird 06.10.2011 draus:

01.
PS C:\Users\XXX> get-date "10.06.2011"  -format "dd.MM.yyyy"  
02.
06.10.2011
Das heist ja im Endeffekt das der -format Befehl sich scheinbar nur auf die Ausgabe bezieht, er den Input aber immer anhand der eingestellten locale interpretiert. Stelle ich diese auf DE um funktioniert es richtig. Leider kann ich das nicht machen, es laufen einige Anwendungen auf dem Server die auf die korrekte locale angewiesen sind.


Gruss,

rana-mp
Bitte warten ..
Mitglied: Logan000
17.06.2011 um 14:22 Uhr
Moin moin

Wie wäre es so:
01.
$deDate = "10.06.2011"      
02.
$usDate = $deDate.substring(3,2) + "." + $deDate.substring(0,2) + "." + $deDate.substring(6,4) 
03.
Get-date $usDate
Gruß L.
Bitte warten ..
Mitglied: Friemler
17.06.2011 um 14:31 Uhr
Hallo rana-mp,

wenn Du genau weißt, dass es sich immer um Datumswerte im deutschen mm.tt.jjjj-Format handelt, bleibt dann wohl nichts anderes übrig, als die Datumswerte "zu Fuß" zu zerlegen und mit den Parametern -Month, -Day und -Year zuzuweisen:
$datum = get-date -month 6 -day 17 -year 2011
Gruß
Friemler


[EDIT]
Zu langsam.
[/EDIT]
Bitte warten ..
Mitglied: rana-mp
17.06.2011 um 14:48 Uhr
OK, danke

Das macht mein script zwar nicht schoener, aber was solls, es muss funktionieren...


Gruss,

rana-mp
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Powershell Workflow, CSV Stapelverarbeitung Problem (6)

Frage von Rippchen zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Windows Update Management - get-WUinstall bleibt hängen (10)

Frage von MartinAD zum Thema Batch & Shell ...

Ubuntu
gelöst Problem mit apt-get autoremove (4)

Frage von Henere zum Thema Ubuntu ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...