将字符串“ 03/2020”解析为DateTime变量

时间:2018-10-01 10:02:33

标签: c# datetime parsing

我必须将始终看起来像03/2020(因此格式为MM/yyyy)的字符串解析为DateTime变量。

我如何最正确地实现它? (不将字符串拆分为子字符串)

我已经找到了DateTime.ParseExact函数,但是我对第三个参数(特定于区域性的格式信息)感到困惑。

DateTime.ParseExact是前进的道路还是实现目标的更好的功能/方式?

var inputString = "03/2020";
var inputStringFormat = @"MM/yyyy";

// var inputStringAsDateTime = ???

编辑1

作为附加信息,我不得不说,字符串(inputString)是从条形码中读取的。因此其中的分隔符始终是/

蒂姆·施密特(Tim Schmelter)在回答中解释了如何掩盖此类分隔符。 看来我必须将inputStringFormat变量更改为:

var inputStringFormat = @"MM'/'yyyy";

3 个答案:

答案 0 :(得分:1)

如果每月的第一天对您有益,则可以使用DateTime.ParseExact

var d = DateTime.ParseExact(inputString, inputStringFormat, CultureInfo.InvariantCulture);

答案 1 :(得分:1)

通常,我使用Convert类的ToDateTime方法。我已经测试,它正在运行。

string inputString = "03/2020";
DateTime datetime = Convert.ToDateTime(inputString));

它将提供类似于3/1/2020 12:00:00 AM的输出,表示将根据系统的日期格式为您提供输出。

答案 2 :(得分:0)

您可以使用这种简单的日期格式

var inputArr = inputString.split(@"/");
var inputStringAsDateTime = new DateTime(inputArr[0], inputArr[1], 1);

但是对于文化,您可以使用常量

CultureInfo.InvariantCulture