Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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#DateTimeKind.Local指的是计算机还是业务对象?_C#_Datetime - Fatal编程技术网

C#DateTimeKind.Local指的是计算机还是业务对象?

C#DateTimeKind.Local指的是计算机还是业务对象?,c#,datetime,C#,Datetime,我正在写一个程序处理的成绩单,从2009年1月15日当地时间15:05:34开始 我将把时间存储在一个DateTime变量中,但对DateTimeKind.Local参数感到困惑 如果我像下面这样存储时间 var startTime = new DateTime(2009, 1, 15, 15, 5, 34, DateTimeKind.Local); 。。。我是说飞机的时间从当地时间15:05开始,即美国东部时间,还是运行程序的计算机的当地时间,即瑞典标准时间?DateTimeKind。loc

我正在写一个程序处理的成绩单,从2009年1月15日当地时间15:05:34开始

我将把时间存储在一个DateTime变量中,但对
DateTimeKind.Local
参数感到困惑

如果我像下面这样存储时间

var startTime = new DateTime(2009, 1, 15, 15, 5, 34, DateTimeKind.Local);

。。。我是说飞机的时间从当地时间15:05开始,即美国东部时间,还是运行程序的计算机的当地时间,即瑞典标准时间?

DateTimeKind。local
将日期时间描述为运行线程的区域设置的本地时间,在本例中是系统的时钟时间。内置日期时间通常被很多人视为一个错误,因为它相当不充分。库可能会给您带来更大的成功。

代码无法知道您使用此
DateTime
的上下文,因此它适用于系统或进程。但问题是,您也在编写将使用此值的代码,这意味着可能由您来确定它的含义。它表示调用线程的当前区域设置的本地值。它反映了计算机的时间,运行这个程序。如果你关心这样的事情,你可能想看看NodaTime。在大多数情况下,内置的日期时间类型和时区支持等都非常不足。这个库在绑定到时区的日期和时间值与不绑定到时区的日期和时间值之间有一个更清晰的区别。对我来说,你第一段的文本意味着这里的“本地时间”与“本地”在当时对飞机的意义有关,飞机在哪里?在.NET中,“本地”类型的DateTime只是一个标志,在处理与UTC之间的转换或类似转换时使用它来确定这种转换是否必要,但正如我上面所说的,这还不足以正确处理这类事情。相反,例如对于NodaTime,您可以说时间是“2009年1月15日15:05:34,在特定时区”。