【问题标题】:Using DateTime.TryParseExact C# [duplicate]使用 DateTime.TryParseExact C# [重复]
【发布时间】:2019-10-08 18:57:14
【问题描述】:

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

【问题讨论】:

  • 关于您在 MySQL 中的数据的其他问题中没有涵盖这一点吗?
  • 看文档,找到你需要的格式字符串,把它们放在一起;并带着更具体的问题回到这里。

标签: c# .net datetime tryparse


【解决方案1】:

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

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

文档和示例是here

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

我在这里添加了另一个答案,因为 TryParseExact 没有在其他答案中具体提到,但它的存在/使用可能是暗示的 - 这个问题是具体的,并且与那些需要直接回答的问题不同,恕我直言,但它会是很好,作为你“SO生活”的一部分,当你问一个问题导致另一个问题时,你在后一个问题中提到前一个问题 - 它为那些回答当前问题的一些有用的背景背景的人提供了明确定义新问题与前一个问题的不同之处(如果您认为是)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    相关资源
    最近更新 更多