Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 2688 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
Windows 7
Basisdatenträger in Dynamischen Konvertieren (6)

Frage von 131944 zum Thema Windows 7 ...

Utilities
gelöst Konvertieren OLM zu PST (1)

Frage von robertwanson zum Thema Utilities ...

PHP
gelöst PHP UTF8 zu CP 850 konvertieren (8)

Frage von wescraven07 zum Thema PHP ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Windows Server
Kennwort vergessen bei Hyper vserver 2012r (12)

Frage von jensgebken zum Thema Windows Server ...

Linux Desktop
Bildschirmauflösung unter Linux festlegen (12)

Frage von itebob zum Thema Linux Desktop ...

Windows Userverwaltung
gelöst Administrator hat alle Rechte verloren (10)

Frage von mrdead zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Gebäude mit WLAN ausstatten (9)

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