Posts mit dem Label SPFieldDateTime werden angezeigt. Alle Posts anzeigen
Posts mit dem Label SPFieldDateTime werden angezeigt. Alle Posts anzeigen

Mittwoch, 9. Juli 2008

Den Defaultvalue von DateTime-Feldern ändern

Prinzipiell ist es relativ einfach den Defaultvalue von SPField-Objekten zu setzen. Wunderlich wird es allerdings, wenn z.B. der Wert "07.07.2008" aus einem DateTime-Feld in ein anderes kopiert werden soll, als neuer DefaultWert aber stattdessen dann "07.07.1907" auftaucht.

Nach etwas Herumsucherei bin ich auf diesen Blogeintrag gestoßen *click* der uns verrät, dass SharePoint das "Coordinated Universal Time"-Format (UTC) bevorzugt, also Datumswerte in der Form 'yyyy-mm-ddThh:mm:ssZ'.

Das kann ganz einfach durch die Methode .ToString("u") erzielt werden, welches ein Datum in das kulturunabhängige UTC-Format umwandelt.

Der Code des konkreten Falls sieht demnach so aus:

SPFieldDateTime abgabeDatum = (SPFieldDateTime)positionList.Fields["Abgabedatum"];
abgabeDatum.DefaultValue = ((DateTime)properties.ListItem["Abgabedatum"]).ToString("u");
abgabeDatum.Update();