我有一个应用程序需要服务器来处理客户端请求。
在这个应用程序中,时间非常重要。
每当客户提出任何要求时,我都想节省提出要求的时间。
问题是,我的服务器在美国,客户端在澳大利亚。
如何将服务器时间更改为客户端时间并将其保存在数据库中。
即使在夏令时,这也应该是准确的。
我怎样才能做到这一点
好的,我已经在数据库中保存了 UTC 时间。
在客户端我有这段代码,
DateTime dt = booking.CreateDateTime.Value;
var localTime = TimeZone.CurrentTimeZone.ToLocalTime(dt);
当我打印本地时间时,它比本地时间快 7 小时。
如何将时间更改为本地时间?
最佳答案
我所知道的指南指出,时间应该始终在数据库中保存为 UTC,而不是本地时间。这样您就可以避免许多本地时差陷阱(包括夏令时)。
当您需要本地时间时,从数据库中将其检索为 UTC 并进行转换。您可以使用 DateTime 结构来帮助您解决这个问题:
var utcNow = DateTime.UtcNow;
SaveToDB(utcNow);
var utcFromDb = RetrieveTimeFromDb();
var localTime = DateTime.ToLocalTime(utcFromDb);
关于c# - 时间转换为客户端时间c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13211091/