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

Datestring in Date konvertieren und damit rechnen

Frage Entwicklung Batch & Shell

Mitglied: LLIILLAA

LLIILLAA (Level 1) - Jetzt verbinden

07.10.2013 um 17:34 Uhr, 2313 Aufrufe, 2 Kommentare

Hallo Forum,

ich habe folgendes Problem:

[code]
[root@server]# date
So. 6. Okt 13:16:53 CEST 2013
[/code]

Date liefert mir ein aktuelle Datum!

Wenn ich dieses Datum aber von wo anders habe und von dem Date beispielsweise 7 Tage abziehen möchte, dachte ich, ich könnte so vorgehen:

[code]
[root@server]# date -d "So. 6. Okt 13:16:53 CEST 2013 -7 day" +"%a. %e. %b %R:%M:%S %Z %Y"
date: ungültiges Datum „So. 6. Okt 13:16:53 CEST 2013 -7 day“
[/code]

Leider bekomme ich immer die folgende Fehlermeldung.
Ich weiß nicht genau, wie ich die Formatierung richtig angehen muss.
Hat jemand eine Idee?

Schöne Grüße
Mitglied: colinardo
07.10.2013, aktualisiert um 22:52 Uhr
Hallo LLIILLAA,
date akzeptiert nicht beliebige Strings im Paarameter -d. Wie diese formatiert sein müssen steht hier. Vor allem akzeptiert es keine deutschen Datumsangaben wie Okt oder So sondern nur die englischen Equivalente;
Ein gültiges Datum könnte beispielsweise so aussehen:
date -d 'Sunday 6 Oct 2013 13:16:53.000000'
Du müsstest also deinen Date-String mit einem Script zerlegen und daraus ein gültiges Datum zusammenbauen, und dann damit rechnen.
Beispiel:
01.
#!/bin/bash 
02.
RAW_DATUM='So 6. Okt 13:16:53 CEST 2013' 
03.
WOCHENTAG=$(echo "$RAW_DATUM" | cut -d' ' -f1) 
04.
TAG=$(echo "$RAW_DATUM" | cut -d' ' -f2 |cut -d'.' -f1) 
05.
MONAT=$(echo "$RAW_DATUM" | cut -d' ' -f3) 
06.
ZEIT=$(echo "$RAW_DATUM" | cut -d' ' -f4) 
07.
ZONE=$(echo "$RAW_DATUM" | cut -d' ' -f5) 
08.
JAHR=$(echo "$RAW_DATUM" | cut -d' ' -f6) 
09.
 
10.
case "$WOCHENTAG" in 
11.
	'Mo') 
12.
	WOCHENTAG='Mon' 
13.
	;; 
14.
	'Di') 
15.
	WOCHENTAG='Tue' 
16.
	;; 
17.
	'Mi') 
18.
	WOCHENTAG='Wed' 
19.
	;; 
20.
	'Do') 
21.
	WOCHENTAG='Thu' 
22.
	;; 
23.
	'Fr') 
24.
	WOCHENTAG='Fri' 
25.
	;; 
26.
	'Sa') 
27.
	WOCHENTAG='Sat' 
28.
	;; 
29.
	'So') 
30.
	WOCHENTAG='Sun' 
31.
	;; 
32.
esac 
33.
case "$MONAT" in 
34.
	'Mär') 
35.
	MONAT='Mar' 
36.
	;; 
37.
	'Mai') 
38.
	MONAT='May' 
39.
	;; 
40.
	'Okt') 
41.
	MONAT='Oct' 
42.
	;; 
43.
	'Dez') 
44.
	MONAT='Dec' 
45.
	;; 
46.
esac 
47.
 
48.
date -d "$WOCHENTAG $TAG $MONAT $JAHR $ZEIT.000000 $ZONE - 7 days"
Alternativ kannst du dein Datum direkt im englischen Format ausgeben indem du die Sprach-Variable in der Shell vorher auf Englisch umstellst
LANG=en_US
und danach wieder auf Deutsch zurück:
LANG=de_DE.utf8
Grüße Uwe
Bitte warten ..
Mitglied: LLIILLAA
08.10.2013 um 08:13 Uhr
Hallo Uwe,

danke für deine Antwort.
Das ist sehr hilfreich.
Dann klappt das einfach leider so nicht....
Schade, ja dann werde ich das wohl irgendwie zerlegen müssen.

Schönen Tag
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...