Getting local time from a DateTime entity property in the SalesLogix Web Entity model

 As you know, SalesLogix stores most dates in the database in UTC equivalent and the provider handles parsing the date in local time when requested.  The SalesLogix entity model does not do this by default, instead the SalesLogix Date web control handles the conversion to local time.  The actual date value returned from the entity model is still in UTC time.

For instance if we have a ticket with a  ReceivedDate of  5/16/2011 9:45:04 AM central time it would be stored in the database as 5/16/2011 2:45:00 PM.

If we run code like this, to get the ReceivedDate:

Sage.Entity.Interfaces.ITicket tic = this.BindingSource.Current as Sage.Entity.Interfaces.ITicket;
string mydate = tik.ReceivedDate.ToString();

It will return “5/16/2011 2:45:00 PM”, the value stored in the database.

Also, if you look at a bound SalesLogix date web user control:

string mydate = dtpreceiveddate.DateTimeValue.ToString();

It will return “5/16/2011 2:45:00 PM”, the value stored in the database.

So how do you get the local time via server side code?  

Like so:

Sage.Entity.Interfaces.ITicket tic = this.BindingSource.Current as Sage.Entity.Interfaces.ITicket;
IContextService context = ApplicationContext.Current.Services.Get<IContextService>(true);
Sage.Platform.TimeZone timeZone = (Sage.Platform.TimeZone) context.GetContext(“TimeZone”);
string mydate =  tic.ReceivedDate==null ? string.Empty : timeZone.UTCDateTimeToLocalTime((DateTime)ticket.ReceivedDate.Value).ToString();

ABOUT THE AUTHOR

Kris Halsrud

Kris Halsrud is a Senior Analyst / Developer for Customer FX Corporation.

Submit a Comment

Your email address will not be published. Required fields are marked *

Subscribe To Our Newsletter

Join our mailing list to receive the latest Infor CRM (Saleslogix) and Creatio (bpm'online) news and product updates!

You have Successfully Subscribed!