c#和SQL Server中的DateTimeOffset解析
文档指出,在.NET和SQL Server中,分辨率为100NS. dateTimeOffset值的时间组件以100纳秒单元为ticks -C#测量 精度-100纳秒 -SQL Server 但是,SQL似乎删除了最后一个数字(例如,我正在尝试保存2013-08-15 09:19:07.2459675 -04:00,和SQL Saves Saves Saves 2013-08-15 09:19:19:07.2459670 -04:09:19:19:07.2459670 -04:00 00-注意最后一个数字的变化.) 这发生在同一台计算机上,因此与硬件相关. 并不是我实际上需要这个分辨率,而是使比较日期更难了..我很好奇. 解决方案 我会说问题是您的...一个小代码: namespace Test { using System; using System.Data; using System.Data.SqlClient;
4 2024-04-18
编程技术问答社区
使用C#获得以毫秒为单位的时间
我正在制作一个程序,我需要花时间毫秒.到了时间,我的意思是一个永远不等于自身的数字,并且总是比一秒钟前大1000个数字.我尝试将DateTime.Now转换为TimeSpan并从中获得TotalMilliseconds ...但是我听说它不是完全准确的. 有一个更简单的方法吗? 解决方案 使用 Stopwatch Stopwatch 班级. 提供了一组方法和 您可以使用的属性 准确测量经过的时间. 在这里实施有一些很好的信息: 绩效测试:system.diarostics.stoppwatch 其他解决方案 long milliseconds = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond; 这实际上是如何在long milliseconds = DateTimeOffset.Now.ToUnixTimeMilliseconds(); 其他解决方案 DateTime.Ticks属性
14 2024-04-17
编程技术问答社区
在c#中创建一个时间戳的函数
我想知道,是否有一种方法可以在DateTime中创建C#中的时间戳? 我需要一个毫秒的精度值,它也可以在紧凑的框架中起作用(说既然DateTime.tobinary()在CF中不存在). 我的问题是我想将此值存储在数据库不可知论的方式中,以便以后可以对其进行分类,并从另一个等等中找出更大的值. 解决方案 我总是使用以下内容: public static String GetTimestamp(this DateTime value) { return value.ToString("yyyyMMddHHmmssfff"); } 这将为您提供一个像200905211035131468这样的字符串,因为字符串从时间戳的最高阶段到最低订单的最低顺序简单字符串在您的SQL查询中进行排序,如果您在数据库中粘贴值 其他解决方案 我相信您可以使用以下 来精确创建一个unix样式的Datestamp //Find unix timestamp (seconds
8 2024-04-11
编程技术问答社区
C# DateTime.Now精度
我只是用datetime.utcnow遇到了一些意外的行为,同时进行了一些单元测试.看来,当您以快速连续调用dateTime.now/utcnow时,它似乎会给您带来相同的值,而不是超过预期的时间间隔,而不是捕获更精确的毫秒递增. 我知道有一个秒表类,可以更适合进行精确的时间测量,但是我很好奇有人可以在DateTime中解释这种行为吗?现在是否有官方的精确度记录到DateTime.为什么DateTime会比大多数CPU时钟能够处理的问题不那么精确?也许它只是为最低的共同点CPU而设计的? public static void Main(string[] args) { var stopwatch = new Stopwatch(); stopwatch.Start(); for (int i=0; i
4 2024-04-10
编程技术问答社区
设置时间_t为毫秒
我有一个功能,我希望该功能在运行一定数毫秒的运行后停止运行.此功能可用几秒钟,但我想以毫秒为单位进行测试.我该怎么做呢?如果我设置消除= 1,则对应于1秒.我如何设置消除= 5 ms? 功能: void clsfy_proc(S_SNR_TARGET_SET pSonarTargetSet, unsigned char *target_num, time_t eliminate) { // get timing time_t _start = time(NULL); time_t _end = _start + eliminate; int _eliminate = 0; //some code time_t start = time(NULL); time_t end = start + eliminate; for(_tidx = 0; _tidx
4 2024-04-09
编程技术问答社区
如何用ANSI C语言以毫秒为单位测量时间?
仅使用ANSI C,是否有任何方法可以用毫秒或更高的精度测量时间?我在浏览时间. 解决方案 没有ANSI C函数可提供优于1秒的分辨率,但POSIX函数您可以这样使用此功能: struct timeval tval_before, tval_after, tval_result; gettimeofday(&tval_before, NULL); // Some code you want to time, for example: sleep(1); gettimeofday(&tval_after, NULL); timersub(&tval_after, &tval_before, &tval_result); printf("Time elapsed: %ld.%06ld\n", (long int)tval_result.tv_sec, (long int)tval_result.tv_usec); 这是在我的机器上返回Time elapsed: 1.0
2 2024-04-05
编程技术问答社区
我怎样才能获得分辨率为毫秒的Windows系统时间?
如何通过毫秒分辨率获得Windows系统时间? 如果不可能,那么如何获得操作系统的启动时间?我想将此值与timeGetTime()一起使用,以便用毫秒分辨率计算系统时间. 解决方案 GetTickCount不会为您完成它. 查看QueryPerformanceFrequency/QueryPerformanceCounter.但是,这里唯一的陷阱是CPU扩展,您的研究也是如此. 其他解决方案 尝试MSDN杂志的这篇文章.实际上很复杂. 实现Windows的连续更新,高分辨率的时间提供商 (其他解决方案 在Windows中,有史以来的基础是一个称为GetSystemTimeAsFiletime的函数. 它返回了能够用100NS重新安装时间的结构. 它保存在UTC FILETIME结构记录自1600年1月1日以来的100NS间隔数;这意味着其分辨率仅限于100NS. 这构成了我们的第一个功能: 自1600年1月1日以来,有64位
20 2023-12-05
编程技术问答社区
系统currentTimeMillis与系统。纳米时间
准确性VS.精确 我想知道的是,我是否应该使用 system.currenttimemillis()或 system.nanotime()在更新游戏中对象的位置时?它们的移动变化与自上次通话以来经过的时间成正比,我想尽可能精确. 我已经读到,不同操作系统之间存在一些严重的时间解决问题(即Mac/Linux在Windows分辨率为50ms时具有接近1 ms的分辨率?).我是在Windows上运行我的应用程序,而50ms的分辨率似乎很不准确. 有比我列出的两个更好的选择吗? 任何建议/评论? 解决方案 如果您只是在寻找经过的时间的极精确的测量,请使用System.nanoTime(). System.currentTimeMillis()将为您提供以来毫秒以来最准确的经过的时间,但是System.nanoTime()相对于某个任意点,System.nanoTime()为您提供了纳米秒的精确时间. 来自Java文档: public static lo
10 2023-10-21
编程技术问答社区
有没有办法使用JavaScript以纳秒为单位获取当前时间?
所以,我知道我可以使用JavaScript获得当前的时间.但是,是否有可能在纳秒中获得当前时间? 解决方案 在大多数浏览器中实现微秒精度: window.performance.now() 另请参见: > https://caniuse.com/high-resolution time 其他解决方案 在Jeffery的答案上构建,以获取绝对时间戳记(如OP想要)代码为: var TS = window.performance.timing.navigationStart + window.performance.now(); 结果为毫秒单位,但据报道是浮点值" 准确至千分之一的 ". 其他解决方案 毫秒以来,unix epoch,具有微秒分辨率. performance.timing.navigationStart已被弃用!改用以下内容: (performance.now() + performance.timeOrigin
30 2023-10-21
编程技术问答社区
解析含有纳秒的日期时间字符串
我有一些日志文件,其中包括格式的hh:mm :: ss.nano_seconds(例如01:02:03:03.123456789).我想在Python中创建一个DateTime,以便我可以在时间上整齐地进行数学(例如,时间差异).使用%f,Strptime适用于微秒. Python DateTime和时间模块是否真的不支持纳秒? 解决方案 您可以看到如果您可以扔掉最后三位数字(无论如何都可能不太有意义),则可以通过将输入字符串切成小数点后只有六位数字来解析此元素,然后用%f进行解析. .否则,看来您必须自己实施减法. 更晚的更新:Numpy和Pandas现在每个人都有(有些不同)对时间戳的支持,包括跟踪纳米秒的可能性,通常是很好的解决方案.请参阅其他答案. python 3.7+还具有其他解决方案 这是一个旧线程,但仍然... 您可以使用PANDAS功能来实现这一目标.我有诸如'2019-03-22T14:00:01.700311864z'之类的时间戳,我将其
16 2023-06-21
编程技术问答社区
在MySQL中存储微秒:哪种解决方法?
我们正在用MySQL支持编写科学工具.问题是,我们需要MySQL当前不支持的DateTime字段的微秒精度.我在这里至少看到两个解决方法: 使用DECIMAL()列类型,其整数部分与秒相对应,因为我怀疑Unix Epoch是否会这样做,因为我们必须存储60和50的测量值). 使用两个整数列,一个用于几秒钟,另一个用于微秒. 最流行的查询是选择与时间间隔相对应的列(即DT_RECORD> time1和dt_record 在大表格(数百万行)的情况下,以下哪种方法(或另一种)可能会提供更好的性能? 解决方案 如果您说最流行的查询是时间基础,我会推荐使用单列,该列将时间存储在您的第一个选项中,.. 您可以为应用程序选择自己的时代,然后从那里工作. 这应该简化搜索时间间隔时需要编写的查询. 还可以查看 10.3.1.日期,日期和时间戳类型 但是,微秒无法存储 进入任何时间数据的列 类型.任何微秒的部分是 丢弃.时间转换或 DateTime值为数字形
14 2023-05-23
编程技术问答社区
现代PC的内部时钟有多精确?
我知道10年前,典型的时钟精度等于系统键,该键在10-30ms的范围内.在过去的几年中,精度有多个步骤提高.如今,有一些方法可以测量纳秒秒的时间间隔.但是,通常的框架仍然只有15毫秒左右的精度返回时间. 哪个步骤降低了精度?如何在纳秒中测量?为什么我们仍然经常会变得比微秒的精度更糟,例如.net? 解决方案 它确实是PC历史记录的功能. 原始的IBM-PC使用了一个名为"实时时钟"的芯片,该芯片被备份了电池(您记得需要更换这些电池吗?)当机器被关闭并保留时间时,这些芯片会在这些电池上进行操作.这些频率为32.768 kHz(2^15个周期/秒),这使得在16位系统上计算时间变得容易. 然后将此实时时钟写入CMO,该时钟可通过旧操作系统中的中断系统获得. Microsoft和Intel的新标准名为High Precision Event Timer,它指定了10MHz的时钟速度 http://www.intel.com/hardwaredesign/hardwarede
76 2023-03-15
编程技术问答社区
Java ScheduledExecutorService精度不高
嗨,我写了一个简单的程序来测试scduledexecutorservice.schedule()函数的精度. 测试设置延迟并检查有效的等待时间. 该测试已在运行Linux 3.8 x86_64的i7机器上执行,OpenJDK 1.7和Oracle JDK 1.7 测试的结果真的很糟糕,这里有一个列表可以向您显示假定和有效延迟之间的平均增量: 传奇: 睡眠(MS):毫秒所需的延迟 deltaavg(MS):在毫秒中获得的所需延迟和有效延迟之间的平均差异 deltaavg_perc :所需的错误百分比/有效 delta min/max :所需和有效延迟之间的最小/最大差异 Sleep(ms): 0.010 deltaAVG(ms): 0.029 deltaAVG_PERC: 0289.6 % delta MIN/MAX (ms): 0.029/0.029 Sleep(ms): 0.020 deltaAVG(ms): 0.061 deltaAVG_PE
56 2022-12-23
编程技术问答社区
Python中的纳秒格式
我有一些时间格式为 HH:MM::SS.nano_seconds 的日志文件(例如 01:02:03.123456789).我想在 python 中创建一个日期时间,这样我就可以巧妙地计算时间(例如,计算时差).strptime 在 微秒 使用 %f 时效果很好.Python datetime 和 time 模块真的不支持纳秒吗?谢谢 解决方案 可以看来源 日期时间对象不支持比微秒更精细的任何东西.正如 Mike Pennington 在评论中指出的那样,这是因为 实际的硬件时钟几乎没有那么精确.维基百科说 HPET 的频率“至少为 10 MHz",这意味着每 100 纳秒一个滴答声. 如果您可以忍受丢弃最后三位数字(无论如何这可能没有太大意义),您可以通过将输入字符串切片为小数点后只有六位数字并使用 %f 进行解析来解析它.否则,您似乎必须自己实现减法.
4560 2022-07-17
编程技术问答社区