Wenn man per Programm E-Mails erzeugt, ist eine Funktion wie die folgende nützlich:
Code: Alles auswählen
EnableExplicit
; Weil die folgenden Listen auch in anderen Zusammenhängen nützlich
; sind, sind sie als Konstanten implementiert, die auch von anderen
; Prozeduren verwendet werden können.
; Daher wird hier auch gemäß ISO-Norm von 1973(!) Montag als erster
; und Sonntag als letzter Tag der Woche behandelt.
#DAYS_SHORT = "Mon,Tue,Wed,Thu,Fri,Sat,Sun"
#MONTHS_SHORT = "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec"
Procedure.s MailDate (mDate, zone$)
; in : mDate: zu konvertierende lokale Zeit
; (im Format wie Date() von PB)
; zone$: Zeitzone = lokale Zeit - UTC
; (z.B. "+0100" für MEZ und "+0200" für MESZ)
; out: Datumsstring für das "Date" Header-Feld in E-Mails,
; gemäß RFC 2822 (z.B. "Sat, 7 Aug 2010 17:24:40 +0200")
Protected weekDay, ret$
weekDay = DayOfWeek(mDate)
If weekDay = 0
weekDay = 7
EndIf
ret$ = StringField(#DAYS_SHORT, weekDay, ",") + ", " + Str(Day(mDate))
ret$ + " " + StringField(#MONTHS_SHORT, Month(mDate), ",")
ProcedureReturn ret$ + FormatDate(" %yyyy %hh:%ii:%ss ", mDate) + zone$
EndProcedure
Debug MailDate(Date(), "+0200")