在c#中转换时区之间的时间



我有一个c# MVC Web应用程序托管在远程服务器上。我不知道它的确切位置。

该应用程序的用户都来自(UTC + 06.00)达卡。当用户插入一条新记录时,我希望插入的日期时间来自他的本地时间。e. (UTC + 06.00) Dhaka。

我该怎么做?

下面的代码解决了我的问题-

DateTime utcTime = DateTime.UtcNow;
TimeZoneInfo BdZone = TimeZoneInfo.FindSystemTimeZoneById("Bangladesh Standard Time");
DateTime localDateTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, BdZone);

您可以遵循以下方法:

步骤1:您可以在数据库中存储UTC时间。如果您使用SQL,那么您可以使用GETUTCDATE()来获取UTC日期。

步骤2

请使用Javascript设置一个cookie,存储浏览器的时区。(您可以使用jsTimeZoneDetect等脚本获取时区名称)

步骤3

后端c#代码:
  1. 从cookie中提取时区

  2. 从数据库中获取插入的utcTime并存储在本地变量中(utcTime是我使用的本地变量名)

  3. 使用下面提到的代码将UTC时间转换为本地时间。

    TimeZoneInfo tzoneinfo = TimeZoneInfo。FindSystemTimeZoneById("浏览器时区名称");DateTime localTime = TimeZoneInfo。ConvertTimeFromUtc (utcTime tzoneinfo);

最后localtime是最终结果。:)

希望这对你有帮助

谢谢

您应该使用ASP的全局时区。网络应用程序。检查这个。除非你只使用c#数据时间函数,否则这是可行的。一旦你有一些复杂的代码在SQL Server将使用GETTIME函数。您还将依赖SQL Server时区。

你应该用UTC来处理内部日期时间,并且只在UI中转换时区。

相关内容

  • 没有找到相关文章