English 中文(简体)
如何获得毫秒精度的当前时间(C#)
原标题:How to get current Time with Milli second precision ( C#)

我使用System.DateTime.Now,但它像2011年5月28日凌晨1:45:58返回。(无毫秒精度)

我想在数据库中以毫秒精度保存当前时间(或日期时间)。

更新:对不起,我的意思是Milli

最佳回答

System.DateTime将精度管理到毫秒,2011年5月28日1:45:58 AM正是它被格式化为字符串的方式。

要使用包含毫秒的格式,请使用格式字符串:“d/M/yyyy hh:mm:ss.fff tt”

问题回答

如果要将其存储在SQL Server数据库中,ADO.Net会自动将CLR<code>System.DateTime</code>数据类型转换为SQL Server<code>DateTime</code〕数据类型(反之亦然)。

CLR<code>System.DateTime</code>具有100纳秒的精度(例如,每个刻度为100纳秒;每毫秒10000个刻度,每秒1000万个刻度。

SQL Server日期时间数据类型精确到(大约)3ms。

你不必担心:ADO.Net会帮你处理的。

哦,如果你真的想浪费额外的纳秒,这样的东西应该能起到作用:

public static DateTime ToExactMillisecondPrecision( DateTime dt )
{
  const long TICKS_PER_MILLISECOND = 10000 ;
  long       totalMilliseconds     = dt.Ticks / TICKS_PER_MILLISECOND ;

  return new DateTime( totalMilliseconds * TICKS_PER_MILLISECOND ) ;
}

我自己真的看不出有什么需要。

查看此链接中的属性列表。所有不同的选择都在那里。

http://msdn.microsoft.com/en-us/library/system.datetime.aspx

包括毫秒,并且记号

你发布的字符串包含秒,所以我想你不是在要求秒的精度,而是要求更精确的时间。

DateTime.Now的值以超过毫秒的精度返回。只是使用默认格式时,不会显示毫秒。要以毫秒为单位显示值,可以使用o标准格式字符串,或者编写自己的自定义格式字符串,其中包括毫秒格式说明符fff

请注意,仅仅因为返回的值是精确的,并不意味着它有那么精确。实际的准确度并没有精确定义,但往往在几十毫秒内。

应该没有必要将日期转换为字符串。也许真正的问题是使用动态SQL。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...