草庐IT

datetime64

全部标签

c# - 如何创建表示 DateTime 中日期的 XElement 类型为 xs :Date

我正在使用XDocument创建一个XML文件,如下所示:vard=DateTime.Now;varxDocument=newXDocument(newXElement("ThisIsADate",d));但是,生成的XML使用xs:datetime格式(例如“2012-05-11T00:00:00”)表示日期d。也就是说,它包括时间信息。但是,我的XML旨在匹配我的XML架构,它将元素定义为“xs:date”类型。因此,由于额外的时间信息,文件在根据架构进行验证时会被拒绝。我该如何解决这个问题?我知道我可以自己使用带有格式的ToString()来格式化日期,但这当然不是“正确”的方法

c# - System.Timers.Timer 仅提供每秒最多 64 帧

我有一个应用程序使用System.Timers.Timer对象来引发由主窗体(WindowsForms,C#)处理的事件。我的问题是,无论我将.Interval设置多短(甚至设置为1毫秒),我每秒最多只能获得64次。我知道Forms计时器有55毫秒的精度限制,但这是System.Timer变体,而不是Forms。该应用占用1%的CPU,因此它绝对不受CPU限制。所以它所做的就是:将计时器设置为1&nsp;ms当事件触发时,递增_Count变量再次将其设置为1&nsp;ms并重复_Count每秒最多递增64次,即使没有其他工作要做。这是一个“回放”应用程序,它必须复制传入的数据包,它们之

c# - .NET Web 服务引用生成的类不适用于 dateTime 类型

我通过从XML模式生成WSDL和类,用Java编写了一个JAX-WS网络服务。我正在将服务添加为visualstudio中的Web引用,以与C#.NET客户端应用程序一起使用。原始的XML模式使用几种日期/时间类型:xs:date和xs:dateTime用于某些元素。我的问题是我的“dateTime”类型无法正常工作。它在生成的类(由VisualStudio2010中的XMLSerializer生成)中(正确地)转换为.NETDateTime对象,然后我可以创建自己的DateTime对象并在这些类之一上设置DateTime。但是,当将请求发送回服务器时,客户端应用程序发送的是一个空值,

c# - 32 位环境下 64 位变量的原子增量

正在为anotherquestion写一个答案出现了一些有趣的事情,现在我无法理解Interlocked.Increment(reflongvalue)如何在32位系统上工作。让我解释一下。NativeInterlockedIncrement64现在在为32位环境编译时不可用,好吧,这是有道理的,因为在.NET中你不能按要求对齐内存,它可以从managed中调用然后他们放弃了它。在.NET中,我们可以使用对64位变量的引用来调用Interlocked.Increment(),我们仍然对其对齐方式没有任何约束(例如在结构中,也可以在哪里我们可能会使用FieldOffset和StructL

c# - 不同的 .NET 程序集引用取决于 32-64 位

这个问题在这里已经有了答案:Conditionallyuse32/64bitreferencewhenbuildinginVisualStudio(7个答案)关闭8年前。我从供应商处获得了32位和64位.NET程序集。它们具有完全相同的接口(interface)(相同的类、相同的方法等)出于某种原因,我永远无法在其他平台上运行一种类型。到目前为止,我一直在做的只是删除引用,然后根据需要重新编译。有没有更简单的方法来做到这一点?编辑我在想可以选择SVN来以某种方式解决这个问题吗?编辑程序集不在GAC中。而且,出现这种需求是因为我在两个平台上构建相同的程序,而不是尝试在另一个平台上运行在一

c# - DisplayFormat 不适用于 Nullable<DateTime>

我试图在MVC中格式化一些DateTimes,但DisplayFormat没有应用于Nullable对象,我不知道为什么。它在CreatedDateTime上运行良好,但在LastModifiedDateTime上运行良好[DisplayFormat(ApplyFormatInEditMode=true,DataFormatString="{0:MM/dd/yyhh:mmtt}")]publicDateTimeCreatedDateTime{get;set;}[DisplayFormat(ApplyFormatInEditMode=true,DataFormatString="{0:M

c# - SQL - 将 NULL 插入 DateTime

我有一个表,我在其中将Datetime添加到某些列中。我使用存储过程将值插入表中。在存储过程中,我有一些变量接受null以插入到表中。我的问题是,当我尝试向表列中插入一个空值时,我在该列中得到了1900-01-01。我该怎么做而不是这个默认值在列中仅插入NULL??这是我的SP:CREATEPROCEDUREdbo.Insert@InserIDint,@InsertDateDatetime=null,ASInsertintoTables(InsertID,InsertDate)Values(@InsertID,@InsertDate)我这样做是为了分配一个空值:System.Data.

c# - DateTime.TryParseExact 未按预期工作

谁能解释为什么下面的代码片段返回true?根据The"d"customformatspecifier的文档,"个位数的日期格式不带前导零。"那么,当我给它一个带前导零的个位数日时,为什么TryParseExact不会失败?DateTimex;returnDateTime.TryParseExact("01/01/2001",@"d\/MM\/yyyy",null,System.Globalization.DateTimeStyles.None,outx);更新我想也许我本来就不清楚。我真正想要了解的是:为什么TryParseExact接受一些不完全匹配的值?从我看到的所有文档中,'d'

c# - DateTime 通过内部刻度进行比较?

我查看了DateTimeEquals的实现:publicboolEquals(DateTimevalue){return(this.InternalTicks==value.InternalTicks);}然后看internalticksinternallongInternalTicks{[TargetedPatchingOptOut("PerformancecriticaltoinlineacrossNGenimageboundaries")]get{return(((long)this.dateData)&0x3fffffffffffffffL);}}然后我注意到这个数字:0x3f

c# - 在 64 位整数中查找最高和最低有效位集的快速方法

在StackOverflow上有很多关于这个的问题。很多。但是我找不到这样的答案:使用C#适用于64位整数(相对于32位)快于:privatestaticintObvious(ulongv){intr=0;while((v>>=1)!=0){r++;}returnr;}甚至intr=(int)(Math.Log(v,2));我在这里假设64位IntelCPU。一个有用的引用是BitHackspage另一个是fxtbook.pdf然而,虽然这些提供了解决问题的有用方向,但它们并没有给出现成的答案。我正在寻找一个可重复使用的函数,它可以执行类似于_BitScanForward64的操作和_