Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C语言中转换时区之间的时间#_C#_Timezone - Fatal编程技术网

C# 在C语言中转换时区之间的时间#

C# 在C语言中转换时区之间的时间#,c#,timezone,C#,Timezone,我有一个托管在远程服务器上的C#MVC Web应用程序。我不知道确切的位置 该应用程序的用户都来自(UTC+06.00)达卡。当用户插入新记录时,我希望插入的日期时间来自其当地时间e.I(UTC+06.00)达卡 我怎么做?您应该使用ASP.NET应用程序的全局时区。检查。除非您只使用C#datatime函数,否则这将起作用。一旦SQL Server中有了一些复杂的代码,这些代码将使用GETTIME函数。您还将依赖SQL Server时区 您应该在UTC中处理内部日期时间,并仅在UI中转换时区。

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

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


我怎么做?

您应该使用ASP.NET应用程序的全局时区。检查。除非您只使用C#datatime函数,否则这将起作用。一旦SQL Server中有了一些复杂的代码,这些代码将使用GETTIME函数。您还将依赖SQL Server时区


您应该在UTC中处理内部日期时间,并仅在UI中转换时区。

您应该使用ASP.NET应用程序的全局时区。检查。除非您只使用C#datatime函数,否则这将起作用。一旦SQL Server中有了一些复杂的代码,这些代码将使用GETTIME函数。您还将依赖SQL Server时区


您应该在UTC中处理内部日期时间,并仅在UI中转换时区。

您可以遵循以下方法:

第1步: 您可以在数据库中存储UTC时间。如果您使用的是SQL,则可以使用
GETUTCDATE()
获取UTC日期

步骤2

请使用Javascript设置cookie,存储浏览器时区。(您可以使用诸如获取时区名称之类的脚本)

步骤3

后端C#代码:

  • 从cookie中提取时区

  • 从数据库中获取插入的utcTime并存储在局部变量中(
    utcTime
    是我使用的局部变量名)

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

    TimeZoneInfo tzoneinfo=TimeZoneInfo.FindSystemTimeZoneById(“浏览器时区名称”); DateTime localTime=TimeZoneInfo.ConvertTimeFromUtc(utcTime,tzoneinfo)

  • 最后,localtime是最终结果:

    希望这对你有帮助


    谢谢

    您可以遵循以下方法:

    第1步: 您可以在数据库中存储UTC时间。如果您使用的是SQL,则可以使用
    GETUTCDATE()
    获取UTC日期

    步骤2

    请使用Javascript设置cookie,存储浏览器时区。(您可以使用诸如获取时区名称之类的脚本)

    步骤3

    后端C#代码:

  • 从cookie中提取时区

  • 从数据库中获取插入的utcTime并存储在局部变量中(
    utcTime
    是我使用的局部变量名)

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

    TimeZoneInfo tzoneinfo=TimeZoneInfo.FindSystemTimeZoneById(“浏览器时区名称”); DateTime localTime=TimeZoneInfo.ConvertTimeFromUtc(utcTime,tzoneinfo)

  • 最后,localtime是最终结果:

    希望这对你有帮助


    谢谢

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

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

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

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

    见网页:&。用法:IFormatProvider provider=System.Globalization.CultureInfo.GetCultureInfo(“bn-BD”);DateTime date=DateTime.Parse(“6:00”,提供者)@抱歉,时区和文化是两个截然不同的东西。区域性仅影响日期格式,不影响时区。请参阅网页:&。用法:IFormatProvider provider=System.Globalization.CultureInfo.GetCultureInfo(“bn-BD”);DateTime date=DateTime.Parse(“6:00”,提供者)@抱歉,时区和文化是两个截然不同的东西。区域性仅影响日期格式,而不影响时区。作为您链接到州的问题的答案,无法在asp.net应用程序中全局设置时区。您也不应该这样做。作为您链接到州的问题的答案,在asp.net应用程序中无法全局设置时区。你也不应该。这对于转换来说是很好的。但是,您可能不应该在数据库中存储本地时间。在大多数情况下,您只希望存储UTC并进行显示转换。也有一些例外,但一般来说,UTC是我们存储时间戳的方式。这对于转换很好。但是,您可能不应该在数据库中存储本地时间。在大多数情况下,您只希望存储UTC并进行显示转换。也有一些例外,但一般来说,UTC是我们存储时间戳的方式。除此之外,jstz的结果在Windows上的
    TimeZoneInfo
    将不可用。您必须首先从IANA转换到Windows。除此之外,jstz的结果在Windows上的
    TimeZoneInfo
    无法使用。你必须先从IANA转换到Windows。