diff --git a/doc/efun/strftime b/doc/efun/strftime
new file mode 100644
index 0000000..c167afb
--- /dev/null
+++ b/doc/efun/strftime
@@ -0,0 +1,112 @@
+SYNOPSIS
+     string strftime()
+     string strftime(string fmt)
+     string strftime(int clock)
+     string strftime(string fmt, int clock)
+     string strftime(string fmt, int clock, int localized)
+
+BESCHREIBUNG
+     Gibt, aehnliche wie ctime(), eine Zeit als formatierten String zurueck.
+     Hierbei kann ein String mit div. Platzhaltern vom Benutzer angegeben
+     werden (s.u.). Wird kein String angegeben, wird "%c" als Formatstring
+     benutzt.
+
+     Das Argument <clock> wird als Anzahl Sekunden seit dem 01.01.1970, 00:00
+     Uhr interpretiert. Wenn <clock> nicht angegeben wird, wird time()
+     verwendet.
+
+     Das Argument <localized> gibt an, ob die Ausgabe englisch (das sog.
+     klassische "C" locale) oder in der jeweiligen Landessprache (z.B.
+     deutsch) erfolgen soll. Hierbei haengt die Sprache allerdings von den auf
+     dem Mudrechner gesetzten Umgebungsvariablen LC_TIME oder LC_ALL ab, sie
+     kann nicht selber gewaehlt werden. Wird kein <localized> angegeben, wird
+     1 verwendet, was einer Ausgabe in Landessprache entspricht.
+     0: Ausgabe im klassischen "C" locale (english)
+     1: Ausgabe in Landessprache des Mudrechners.
+
+BEMERKUNGEN:
+     Der zurueckgebene Ergebnisstring ist max. 511 Zeichen lang.
+
+PLATZHALTER:
+     Diese Funktion versteht alle Platzhalter, die die Funktion strftime() aus
+     der C-Standardbibliothek versteht. Momentan sind dies:
+       %a     Der abgekuerzte Wochentag abhaengig von der momentanen Locale.
+       %A     Der gesamte Wochentag abhaengig von der momentanen Locale.
+       %b     Der abgekuerzte Monatsname abhaengig von der momentanen Locale.
+       %B     Der volle Monatsname abhaengig von der momentanen Locale.
+       %c     Das bevorzugte Datums- und Uhrzeit-Repraesentation laut Einstel-
+              lungen der momentanen Locale.
+       %C     Das Jahrhundert als zweistellige Zahl.
+       %d     Der Tag im Monat als Dezimalzahl (01 - 31).
+       %D     Aequivalent  zu %m/%d/%y.  (US-amerikanisches Format.  In anderen
+              Laendern ist %d/%m/%y durchaus ueblich . In internationalem Kon- 
+              text ist dieses Format daher mehrdeutig und sollte nicht verwen-
+              det werden.)
+       %e     Wie %d, der Tag im Monat als Dezimalzahl, aber eine fuehrende
+              Null ist durch ein Leerzeichen ersetzt.
+       %E     Modifikator: Alternatives Format benutzen, s.u.
+       %g     Wie  %G,  aber ohne das Jahrhundert, also mit zweistelligem Jahr
+              (00-99).
+       %G     Das Jahr laut ISO 8601 mit dem Jahrhundert als Dezimalzahl.  Das
+              vierstellige Jahr, das zu ISO-Wochennummer (siehe %V) passt.  Es
+              hat dasselbe Format und denselben Wert wie %y,  nur  dass,  wenn
+              die  ISO-Wochennummer  zum  vorhergehenden  oder  naechsten  Jahr
+              gehoert, dieses Jahr stattdessen benutzt wird.
+       %h     Aequivalent zu %b.
+       %H     Die Stunde im 24h-Format als Ganzzahl (00 - 23).
+       %I     Die Stunde im 12h-Format als Ganzzahl (01 - 12).
+       %j     Der Tag im Jahr als Ganzzahl (001 - 366).
+       %k     Die Stunde im 24h-Format als Ganzzahl (0 - 23); einzelne Ziffern
+              haben ein vorangestelltes Leerzeichen. (Siehe %H.)
+       %l     Die Stunde im 12h-Format als Ganzzahl (0 - 12); einzelne Ziffern
+              haben ein vorangestelltes Leerzeichen. (Siehe %I.)
+       %m     Der Monat als Ganzzahl (01 - 12).
+       %M     Die Minute als Ganzzahl (00 - 59).
+       %n     Ein Zeilenvorschub.
+       %p     Entweder 'AM' oder 'PM', je nach der uebergebenen  Uhrzeit,  oder
+              die  zugehoerigen Zeichenketten in der momentanen Locale.  Mittag
+              erhaelt 'PM', Mitternacht 'AM'.
+       %P     Wie %p, aber in Kleinbuchstaben.
+       %r     Zeit in AM/PM-Notation; in der POSIX-Locale ist das Aequivalent
+              zu '%I:%M:%S %p'.
+       %R     Zeit in 24h-Notation (%H:%M). (SU) Fuer eine Version mit Sekunden
+              siehe %T.
+       %s     Die Zahl der Sekunden seit  der  Epoche,  also  seit  1970-01-01
+              00:00:00 UTC.
+       %S     Die Sekunde als Ganzzahl (00 - 61).
+       %t     Ein Tabulatorzeichen.
+       %T     Zeit in 24h-Notation (%H:%M:%S).
+       %u     Der Tag der Woche als Zahl von 1 bis 7, mit Montag als 1.  Siehe
+              auch %w.
+       %U     Die Wochennummer des aktuellen Jahres als Ganzzahl  von  00  bis
+              53,  beginnend  mit dem ersten Sonntag als erster Tag der ersten
+              Woche.  Siehe auch %V und %W.
+       %V     Die Wochennummer nach ISO 8601:1988 als Dezimalzahl von  01  bis
+              53,  wobei Woche 1 die erste Woche ist, die wenigstens 4 Tage im
+              laufenden Jahr hat, mit Montag als dem  ersten  Tag  der  Woche.
+              Siehe auch %U und %W.
+       %w     Der  Tag  der  Woche  als  Zahl  von 0 bis 6, mit Sonntag als 0.
+              Siehe auch %u.
+       %W     Die Wochennummer des aktuellen Jahres als Ganzzahl  von  00  bis
+              53,  beginnend  mit  dem ersten Montag als erster Tag der ersten
+              Woche.
+       %x     Die bevorzugte Datums-Repraesentation ohne die Zeit in der momen-
+              tanen Locale.
+       %X     Die  bevorzugte  Uhrzeit-Repraesentation  ohne  das  Datum in der
+              momentanen Locale.
+       %y     Das Jahr als Ganzzahl ohne das Jahrhundert (00 - 99).
+       %Y     Das Jahr als Ganzzahl mit dem Jahrhundert.
+       %z     Die  Zeitzone  als  Stundendifferenz  zu  GMT. Benoetigt, um
+              RFC822-konforme  Datumsangaben  zu  erhalten  (mit '%a, %d %b %Y
+              %H:%M:%S %z').
+       %Z     Die Zeitzone oder der Name oder die Abkuerzung.
+       %+     Datum und Zeit im Format von date(1).
+       %%     Das Zeichen '%'.
+     
+BEISPIEL
+     write(strftime("Heute ist %A, der %d. %B %Y.\n"))
+     ergibt z.B.
+     "Heute ist Montag, der 24. September 2007.\n"
+
+SIEHE AUCH
+     ctime(E), gmtime(E), localtime(E), mktime(E), time(E), utime(E)
