我有一个Silverlight客户端,它与一些ASP.NET Web服务进行通信,然后修改数据库。客户端具有可以修改的数据,并通过Web服务发送到数据库。此数据按日期组织。
显然,客户端可以驻留在ASP.NET服务器的不同时区,因此,如何确保DateTime信息位于数据库的正确时区? DateTime的时区信息是否会在客户端和服务器之间存活,以便转换为UTC将正确产生UTC时间,或者是否需要在客户端进行UTC转换?
答案 0 :(得分:5)
您应该在代码中使用DateTime.UtcNow
,然后毫无疑问需要转换的位置。
由于Silverlight在客户端计算机上使用.NET运行时运行,我认为它会在用户的本地时区获得时间。
您可以使用Silverlight中的TimeZoneInfo类来获取用户所在时区的信息。DateTime
类本身不存储特定的时区信息(只是时间是通用的还是本地时间),因此您需要使用它来确定用户的时区。