【发布时间】:2021-08-04 15:06:46
【问题描述】:
我将电子邮件主题存储在数据库中,例如“示例结果 {MM/dd/yyyy}”或“示例 {MM/dd/yyyy} 结果”。我需要获取字符串并将日期格式替换为当前日期。字符串中的日期格式可能会有所不同,例如它也可以是“{dd-MM-yyyy}”。 如果数据库中的数据类似于“示例结果 {0:MM/dd/yyyy}”,我可以使用以下代码:
string.Format(formattedSubject, DateTime.Now)
但是如何使它与“示例结果 {MM/dd/yyyy}”一起工作 我知道我可以使用:
string formattedSubject = subject.Replace("{","{0:");
但我认为这不是理想的解决方案。还有其他想法吗?
【问题讨论】:
-
可能是
subject.Replace("{MM/dd/yyyy}", DateTime.Now.ToString("MM/dd/yyyy"))? -
日期格式可以不同。这就是为什么我不能只使用替换。日期格式也可以是 MM-dd-yy
-
如果您的格式很少,您可以链接替换。否则,正则表达式可以完成这项工作。
-
它可以是任何日期格式,所以不知道在这种情况下如何使用正则表达式。
-
我猜你需要重新考虑在同一个文件中使用“不同”的日期格式。您声明日期可能是“MM/dd/yyyy”或“dd-MM-yyyy”……。这对你来说是个问题。如果你得到像“06/04/2021”这样的日期……这是哪种格式? MM/dd/yyyy 还是 dd/MM/yyyy?混合日期格式从来都不是一个好主意。问题是,当您的代码误解日期时……您的代码将受到指责……一致的格式是保证您的代码解释正确日期的唯一方法。
标签: c#