首页 > 解决方案 > 使用 DateTime.TryParseExact C#

问题描述

我不知道 TryParseExact 方法如何以示例日期格式工作:这是格式:(开始:2019.06.30。14:56:43)以及如何告诉 TryParseExact 这种格式?

标签: c#.netdatetimetryparse

解决方案


根据您的另一个问题中的几个答案的混合,我建议您使用正则表达式去除所有非数字然后解析剩下的内容:

var fromStr="Beginning: 2019.06.30. 14:56:43";

//strip non numerics 
fromStr = Regex.Replace(fromStr, @"[^0-9]", "");

//now our dates of [2019. 09. 23. 14:54:23], [2019.09.23 14:54:23] or [2019-09-23 14:54:23]
//just become 20190923145423
if(DateTime.TryParseExact(fromStr, "yyyyMMddHHmmss", CultureInfo.InvariantCulture, null, out var fromDt)
  //code if success
else
  //code if fail

文档和示例在这里

我提倡稍微清理一下您的数据,因为您以前曾建议您的日期时间可能会显示为所有古怪和美妙格式的宠物,周围有随机文本

我在这里添加了另一个答案,因为 TryParseExact 没有在其他答案中特别提到,但它的存在/使用可能是暗示的 - 这个问题是具体的并且与那些需要直接回答恕我直言的问题不同,但如果,作为“SO 生活”的一部分,当您提出一个问题导致另一个问题时,您会在后一个问题中引用前一个问题 - 它为那些回答当前问题的一些有用背景背景的人提供了帮助,并允许您清楚地定义如何如果您认为新问题与前一个问题不同

我还将重申我之前的建议,即您确实应该将这些 DateTimes 存储为 DateTimes 而不是各种格式的字符串。如果您正在解析日志输出,那么这是可以理解的,但请尝试在进入数据库的过程中而不是在退出的过程中获取它


推荐阅读