1-888-365-2779
+1-888-365-2779
Try Now
More in this section

Forums / Developing with Sitefinity / Request - Definitive Sitefinity DateTime

Request - Definitive Sitefinity DateTime

1 posts, 0 answered
  1. Mark
    Mark avatar
    147 posts
    Registered:
    01 Jun 2010
    14 Aug 2012
    Link to this post
    I have switched my code around too many times trying to save UTC times, ToLocal, ToSitefinityUITime ect. Can someone please chip in and let me know how I'm supposed to save a datetime from a RadDateTimePicker to sitefinity's eventStart/eventEnd fields?

    Here's my situation. I'm in the US Central Time Zone and have clients all over the US in different time zones. I set their time zone correctly in the Sitefinity settings. I have a front end event submission form.

    Default dates for RadDateTimePicker: 
    dtEventBegin.SelectedDate = DateTime.UtcNow.RoundQuarterHour();
                dtEventEnd.SelectedDate = DateTime.UtcNow.RoundQuarterHour().AddHours(1);
    
    
    Persisting the user adjusted dates:
    calEvent.EventStart = dtEventBegin.SelectedDate.Value;
                calEvent.EventEnd = dtEventEnd.SelectedDate.Value;
    
    
    Setting the edit page with the persisted values:
    
    DateTime startDT = calendarEvent.EventStart.ToSitefinityUITime();
                eventDetailCtl.dtEventBegin.SelectedDate = startDT;
     
                DateTime endDT = calendarEvent.EventEnd.HasValue ? calendarEvent.EventEnd.Value : calendarEvent.EventStart;
                eventDetailCtl.dtEventEnd.SelectedDate = endDT.ToSitefinityUITime();
    Display persisted dates on detail page:
    private string GetEventDate(Event calendarEvent)
            {
                DateTime startDT = calendarEvent.EventStart;
                DateTime endDT = calendarEvent.EventEnd.HasValue ? calendarEvent.EventEnd.Value : calendarEvent.EventStart;
     
                StringBuilder date = new StringBuilder();
     
                date.AppendLine("<div>" + startDT.ToSitefinityUITime().ToString("dddd MMM d") + "</div>");
     
                if (calendarEvent.EventEnd.HasValue)
                    date.AppendLine("<div>" + startDT.ToSitefinityUITime().ToString("h:mm tt") + " to " + endDT.ToSitefinityUITime().ToString("h:mm tt") + "</div>");
                else
                    date.AppendLine("<div>" + startDT.ToSitefinityUITime().ToString("h:mm tt") + "</div>");
     
                return date.ToString();
            }

    I cannot for the life of me get this correct for every time zone. What am I doing wrong?
1 posts, 0 answered