Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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# SQL Server默认的dateformat/语言是否会影响我的DateTime对象到字符串的呈现?_C#_Asp.net_Sql Server_Datetime - Fatal编程技术网

C# SQL Server默认的dateformat/语言是否会影响我的DateTime对象到字符串的呈现?

C# SQL Server默认的dateformat/语言是否会影响我的DateTime对象到字符串的呈现?,c#,asp.net,sql-server,datetime,C#,Asp.net,Sql Server,Datetime,SQL Server默认日期格式/语言与asp.net应用程序中呈现为字符串的日期时间对象之间是否存在任何关系 默认SqlServer日期格式是否会影响我生成的报告中的日期时间字符串?asp.net应用程序正在使用EntityFramework获取数据。引用: DateTime toString方法转换当前DateTime的值 使用指定的 当前区域性的格式和格式约定 也就是说,不会的。渲染将受应用程序区域性设置的影响-因此,无论您如何处理它,它都会相应地显示日期和时间 当前区域性(再次启用) 区

SQL Server默认日期格式/语言与asp.net应用程序中呈现为字符串的日期时间对象之间是否存在任何关系

默认SqlServer日期格式是否会影响我生成的报告中的日期时间字符串?asp.net应用程序正在使用EntityFramework获取数据。

引用:

DateTime toString方法转换当前DateTime的值 使用指定的 当前区域性的格式和格式约定

也就是说,不会的。渲染将受应用程序区域性设置的影响-因此,无论您如何处理它,它都会相应地显示日期和时间

当前区域性(再次启用)

区域性是执行线程的属性。这是只读的 属性相当于检索返回的CultureInfo对象 通过Thread.CurrentCulture属性。当线程启动时,其 区域性最初是通过调用Windows GetUserDefaultLocaleName函数

在ASP.NET的情况下,这很可能是从用户的操作系统区域性设置派生的设置(我在这里选择了长的快捷方式)。但是,这可能位于web.config(或其他位置):


SQL Server将类型存储为二进制。它使用8个字节。第一个4字节表示日期,第二个4字节表示时间

此类型在CLR端具有,并且此
系统。DateTime
也没有格式。它只有日期和时间值。它基于wihch,wihch是自公历0001年1月1日午夜12:00:00以来经过的100纳秒间隔数

正如您所看到的,两者实际上都是某种数值

另一方面,“格式”概念仅适用于获取文本(又称字符串)表示时,这通常是通过C#端的
DateTime.ToString
方法和SQL Server端的
format
方法实现的

因此,如果您为SQL Server中的
System.DateTime
值选择了正确的数据类型(请参见:)(通常使用
DateTime
datetime2
完成),则不会影响为报告生成的格式

当您使用
DateTime
值直接向报表提供数据时,将自动调用
ToString()
方法(如果没有自定义格式等),此方法使用标准设置


对于初学者来说,理解DateTime实例及其字符串表示(格式)之间的区别非常重要。

日期没有格式。它们可能有时区,但格式仅用于UI目的。我认为从数据库到asp.net应用程序可以很好地解释日期。但是,在将DateTime对象呈现为字符串时,计算机的“区域”设置确实会产生影响(除非您显式格式化)。好的,让我们更进一步:当前文化从何而来?我已经看到了我问题的答案,它来自“区域”操作系统setting@AngJobs-是的,当设置不不同时。我建议您熟悉MSDN的详细信息,以避免意外,并控制设置。
<globalization uiCulture="en" culture="en-US" />