开发者

How to deal with DateTime and TimeZone in Silverlight?

I am working on Silverlight Application with SQL Azure. As I know if DateTime Kind is Unspecified, Silverlight will change it to Local and it will save to Azure as UTC time.

Everything working as expect but when I get DateTime data from SQL Azure, its Kind is Unspecified and Silverlight does not convert back to Local time when its display on UI.

For example: I use my application in Rome (UTC +1), I set date to 15:00 then save to database. In database it will save as 14:00 (UTC).

Now I open page to edit that data, it query from database as 14:00 with Unspecified kind and it also show 14:00 in page, which obviously incorrect.

I tried to set DateTime kind at DomainService (before return those data to client) by checking if its kind is unspecified, set it to UTC. This time when I change DateTime on my page its kind is always UTC.

It seems like silverlight will convert date only if its kind is Unspecified, 开发者_StackOverflow中文版otherwise it do nothing, it also can't convert DateTime from database to display properly even those DateTime has Kind.

I want to know, are there any solutions or work around for this problem?


If you know its stored in UTC, have you tried setting datetime, then using having Silverlight explicitly convert to local time? I am not familiar with Silverlight, but in other forms of .NET, you have to do this conversion explicitly for UI operations.

DateTime dt = GetDateFromDB();

dt = dt.SpecifyKind(DateTimeKind.UTC);

DateTime dtAsLocal = dt.ToLocalTime();
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜