c# - 时间转换为客户端时间c#

标签 c# datetime timezone

我有一个应用程序需要服务器来处理客户端请求。

在这个应用程序中,时间非常重要。

每当客户提出任何要求时,我都想节省提出要求的时间。

问题是,我的服务器在美国,客户端在澳大利亚。

如何将服务器时间更改为客户端时间并将其保存在数据库中。

即使在夏令时,这也应该是准确的。

我怎样才能做到这一点

好的,我已经在数据库中保存了 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/

相关文章:

java - 无论时区如何,以 UTC 格式获取设备时间

c# - 从服务器端在 HttpRequest 中查找时区

ruby-on-rails - rails 3 : How to get today's date in specific timezone?

c# - 无法使用实例引用访问成员;用类型名称限定它

c# - 切换 UInt64 和 uint

ruby-on-rails-3 - Rails 查询中的 PostgreSQL 不工作

使用 DATEVALUE 函数时 Excel #Value 错误

c# - C#中如何给接口(interface)添加成员变量

c# - C#中的匿名方法是什么?

java - 日期在美国服务器中返回错误的年份