我正在使用SQL Azure Silverlight应用程序。据我所知,如果DateTime
种类未指定,Silverlight会将其更改为Local
,并且它会以UTC时间保存到Azure。如何处理Silverlight中的DateTime和TimeZone?
一切按预期工作,但是当我从SQL Azure获得DateTime
数据时,其种类为Unspecified
,并且Silverlight在UI上显示时不会转换回Local
时间。
例如:我在罗马(UTC +1)使用我的应用程序,我将日期设置为15:00,然后保存到数据库。在数据库中它将保存为14:00(UTC)。
现在我打开页面编辑该数据,它从数据库中查询为14:00,使用Unspecified
类型,它也在页面中显示14:00,这显然不正确。
我试着在DomainService(在将这些数据返回给客户端之前)设置DateTime
种类,方法是检查它的类型是否未指定,将其设置为UTC。这次,当我在页面上更改DateTime时,它的类型始终是UTC。
好像Silverlight将转换日期只有当它的种类为Unspecified
,否则什么都不做,也不能转换DateTime
从数据库中正确显示即使是那些DateTime
有种。
我想知道,有没有解决方法或解决此问题?
我试图做到这一点,它会正确地显示在用户界面,但是当我在UI更改日期时间,并保存到数据库中,也不会从本地转换为UTC。例如,如果我在罗马(UTC +1)将日期时间设置为15:00:00,那么它会将数据保存到15:00:00而不是14:00:00 – Anonymous 2011-02-04 02:35:02