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, 2640 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 ...

Server
gelöst SQL-Tabelle portieren und dabei Daten konvertieren (1)

Frage von menace zum Thema Server ...

PHP
PHP UTF8 zu CP 850 konvertieren (2)

Frage von wescraven07 zum Thema PHP ...

Neue Wissensbeiträge
Sicherheit

Millionen Euro in den Sand gesetzt?

(3)

Information von transocean zum Thema Sicherheit ...

Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Eine Netzwerkdose im Wechsel für zwei unterschiedliche Netze (12)

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

Netzwerke
Mobile Einwahl IPSec VPN von iPhone iPad T-Mobile zur Pfsense (12)

Frage von Spitzbube zum Thema Netzwerke ...

Voice over IP
SNOM D765 an LancomR883VAW (10)

Frage von MS6800 zum Thema Voice over IP ...

Windows Netzwerk
Ordner-Freigabe außerhalb der Domäne (9)

Frage von Remsboys zum Thema Windows Netzwerk ...