如何在C#中解析类似03-22-2022 03:28 p.m.的DateTime字符串



正如我的问题所说,我想将格式为03-22-2022 03:28 p.m.(月-日-年-小时:分钟上午或下午(的日期时间解析到C#中的t datetime对象中,不知道如何做到这一点。

我尝试了以下操作,但不起作用:

var ss = "03-22-2022 03:28 p.m.";
format = "MM-dd-yyyy hh:mm t.t.";
success = DateTime.TryParseExact(ss, format, System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None, out DateTime result);

首先,我建议您不要使用var,而是使用字符串来表示ss。也很难说";成功;变量来自。如果在右侧使用out变量,通常不会在左侧赋值,除非您试图捕获布尔值以确定它是否有效。有一种方法可以在没有成功变量的情况下做到这一点。

如果我按照你的方式来做,我使用var而不是字符串,并且我使用TryParse和out变量,下面是我要做的。

var ss = "03-22-2022 03:28 p.m.";
DateTime.TryParse(ss, out DateTime result);
return (result != DateTime.MinValue);

通过在out参数中使用DateTime,可以内联定义变量。这允许您稍后使用结果。此外,DateTime变量从不为null,因此您可以检查它是否等于DateTime。MinValue,而不是创建要在条件语句中使用的另一个变量。正在检查日期时间。MinValue将产生相同的结果。在我的示例中,我将返回结果,就好像它是一个具有返回值的函数一样。你可以随心所欲地使用它。

如果您没有返回布尔值,但稍后使用它,您可以执行以下操作:

string ss = "03-22-2022 03:28 p.m.";
DateTime.TryParse(ss, out DateTime result)
if (result != DateTime.MinValue)
{
//ToDo: continue process here
}

其他人可能有更好的建议,但这对我有效。

最新更新