android应用程序中服务器和客户端的时区差异



我创建了一个android客户端-服务器应用程序,该应用程序涉及将日期时间值存储到数据库中。服务器是mssql服务器。服务器端的编程是用c#完成的。当前时间作为datetime2值存储在数据库中。服务器时区为美国山地标准时间。它与格林尼治标准时间的偏移量是-07小时。服务器时间为GMT-7.00。我现在的当地时间是格林尼治标准时间+05.30。我开发了这个android应用程序,可以在GMT+05.30时区工作。所以我需要知道如何将服务器时间从GMT-07.00转换为GMT+05.30。

我使用以下代码建立了服务器时间和GMT。

TimeZone zone = TimeZone.CurrentTimeZone;
DateTime server=DateTime.Now;
DateTime universal=zone.ToUniversalTime(DateTime.Now); //GMT TIME
//I have found that My server offset from GMT is -07.00 using the below code
TimeSpan offset = zone.GetUtcOffset(DateTime.Now); 

当我在服务器数据库中输入以下值时,它会以这种格式输入到表中。

Here my local time is: 2014-02-03 20:25:08.0000000
my server time at that moment is: 2014-03-03 07:55:28.0000000   
the utc time at that moment is: 2014-03-03 14:55:28.0000000 

因此,总的来说,我的服务器时间和本地时间相差大约12小时30分钟。如果此位置的服务器由于任何原因而停机,则服务器将从具有不同时区和不同偏移量的另一个位置运行。因此,服务器时间和本地时间之间的差异有时会发生变化。这给我的应用程序带来了问题,因为我的价值观有时会出错。当我需要并计算服务器的时间时,有没有办法找出偏移量,并使其与本地时间相同??

如果使用SQL 2008以后版本,请将数据存储为DateTimeOffset。

这将使不同时区的比较更加容易。然后,您可以使用ToLocalTime 进行比较

相关内容

  • 没有找到相关文章

最新更新