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, 2580 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 ..
Ähnliche Inhalte
Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (18)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
IP Adressen - Modem - Switch - Accesspoint (17)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
DNS ins mehreren Subnetzen (13)

Frage von joerg zum Thema Windows Netzwerk ...