Autor Thema: Zeitpunkt speichern  (Gelesen 2036 mal)

Offline Akunin

  • Junior Mitglied
  • **
  • Beiträge: 82
Zeitpunkt speichern
« am: 12.12.08 - 12:22:45 »
Huhu, mal ne kleine Frage

ich habe einen Agent der eine Uhrzeit und ein Datum aus einer Mail ausliesst, nun möchte ich die beiden Werte in ein einziges Zeit/Datums-Feld schreiben

ich habs so probiert

Call doc.ReplaceItemValue("Start_Zeitpunkt",Cdat(Datum) + " " + Cdat(Zeit))

allerdings sieht die Darstellung dort so bissl blöd aus da er folgendes ausgibt.

z.B. 12122008, 4442324

kann mir jemand sagen wie ich das besser anstellen kann?


Offline Akunin

  • Junior Mitglied
  • **
  • Beiträge: 82
Re: Zeitpunkt speichern
« Antwort #1 am: 12.12.08 - 12:43:11 »
ups, kleiner Fehler, das + " " + gehört da nicht wirklich rein, funktioniert wieder :)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Zeitpunkt speichern
« Antwort #2 am: 12.12.08 - 19:18:11 »
Das "+" ist nicht Dein eigentliches Problem, sondern das Format, in dem Du speicherst. Da ich bei solchen Problemen immer wieder herangezogen werde, erlaube mir bitte die Bemerkung: Ein Datums-/Zeitwert in einem String zu speichern, ist das absolut beknackteste, was man überhaupt machen kann (für Zahlen gilt das gleiche!)!!

Was mir genauso Sorgen macht: Dein "Cdat (Datum)" und Dein "Cdat (Zeit)". Wo hast Du diese Werte her? Aus Notes Date/Time-Items ausgelesen? Mit LS erzeugt (dann würde das aber mit der Verknüpfung nicht funktionieren!)? Oder ist das etwas auch schon wirklich String? Was wieder ganz übel wäre!

Tipps:
1. Speichere niemals Date/Time values als String ab - immer im nativen Format!
2. Speichere niemals Date/Time values als String ab - immer im nativen Format!
3. Speichere niemals Date/Time values als String ab - immer im nativen Format!

4. Sowie Du mit "Nur-Zeit-Werten" arbeitest, rechne damit: Im Frontend ist das (scheinbar) möglich, in Wirklichkeit steht aber auch hier (abgespeichert) der 30.12.1899 PLUS der Offset (fraction part) für die Uhrzeit darin (der 30.12.1899 12:00:00 ist in Wirklichkeit ein Zahlenwert - nämlich 0,5). Sowie Du per LS "nur-Zeit-Felder" (in Wirklichkeit natürlich die Items dahinter im Backend) manipulierst, bekommst Du sofort einen anderen Wert für den Datums-Teil der Datumsseriennummer mitgeliefert. Und dann passt Dein Konstrukt nicht mehr - Du kannst dann u.U. den 12.12.2008 (ohne fraction, also 12.12.2008 00:00:00) addieren mit 12.12.2008 12:00:00. Das Ergebnis ist für Dich dann offensichtlich ganz unerwartet  ;)

12.12.2008 = Datumsseriennummer 39794
12.12.2008 12:00:00 = Datumsseriennummer 39794,5000

Beide Werte addiert ergeben den 25.11.2117 12:00:00. Völlig unerwartet? Vielleicht für manchen, aber folgerichtig.

Bernhard

PS: Anbei ein paar Statements / Hintergrundinformationen aus meinem letzten Vortrag hierzu bei der SoftSphere 2008. Da der Vortrag auf der Website der SoftSphere bisher noch nicht veröffentlicht wurde (oder ich bin blind), hänge ich ihn hier einfach mal für alle an.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz