Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.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#:在奇怪的时间做数学_C#_Datetime_Logic - Fatal编程技术网

C#:在奇怪的时间做数学

C#:在奇怪的时间做数学,c#,datetime,logic,C#,Datetime,Logic,我从日志文件中读取了一些日期时间戳,问题是日志文件奇怪地记录了这些时间戳,例如: “2020061515141112”是其在文件中的显示方式,表示“2020 06/15 15:14:11.12” 我遇到的问题是,我有开始事件和结束事件的日志行,我需要解析它们之间的时间段 我的问题是: 在C#应用程序中,如何将字符串(yyyymmddhhmmssf)解析为DateTime可用于在它们之间执行的格式?我不太熟悉约会时间,很难让Visual Studio同意以下内容: DateTime aDT = D

我从日志文件中读取了一些日期时间戳,问题是日志文件奇怪地记录了这些时间戳,例如:

“2020061515141112”是其在文件中的显示方式,表示“2020 06/15 15:14:11.12”

我遇到的问题是,我有开始事件和结束事件的日志行,我需要解析它们之间的时间段

我的问题是: 在C#应用程序中,如何将字符串(yyyymmddhhmmssf)解析为DateTime可用于在它们之间执行
的格式?我不太熟悉约会时间,很难让Visual Studio同意以下内容:

DateTime aDT = DateTime.Parse(aLogDate,"yyyyMddHHmmssff",System.Globalization.DateTimeStyles.None);
它符合预期的格式(字符串、IFormatProvider、DateTimeStyle),但参数无效(是格式提供程序吗?)

编辑:我们能够修改日志打印的格式(某种程度上),以在日期时间中保留前导零,因此这不再是一个问题,上面仍有疑问)


朋友的帮助是第一位的。这就是我想要的,人们开始关注细节,本来应该让问题更简洁一点的

你们几乎被搞砸了,因为不强迫所有东西都是两位数,带前导零意味着你们可以有模棱两可的时间戳,比如“2020111115141112”1月11日或11月1日。您必须将字符串格式化为可以通过添加缺少的前导零或分隔符来解析的内容(“天才”首先应该做的事情)是的。。。我想,但对于这种情况,我们只调查6月10日至6月13日的日期时间,所以我可以“过得去”为了我们diagnostics@Medic3000最糟糕的可能是
2020111111
2020 1/11:11:11
2020 1/11 1:11:11
2020 11/1 1:11:11
@frank我们在软件中发现了一个设置,该设置提供了允许在月/小时/天切换前导零的日志,因此我们现在有了一致的YYYYMMDDHMMSSFF输出到日志。考虑到这一点,最初的问题仍然存在,所以假设你有两个日期时间戳,比如t1和t2,你可以从t2中减去t1,得到一个时间跨度,比如d=t2-t1。然后,d可以显示为d.ToString(\\HH\\mm\\ss.ff)或您希望的格式。“2020 06/15 15:14:11.12”您建议的格式可以工作。如果使用DateTime.Parse i.o.DateTime.ParseExact,则无需为其指定格式。
DateTime aDt = DateTime.ParseExact(aLogDate, "yyyyMMddHHmmssff", System.Globalization.CultureInfo.InvariantCulture);