我必须将始终看起来像03/2020
(因此格式为MM/yyyy
)的字符串解析为DateTime变量。
我如何最正确地实现它? (不将字符串拆分为子字符串)
我已经找到了DateTime.ParseExact
函数,但是我对第三个参数(特定于区域性的格式信息)感到困惑。
DateTime.ParseExact
是前进的道路还是实现目标的更好的功能/方式?
var inputString = "03/2020";
var inputStringFormat = @"MM/yyyy";
// var inputStringAsDateTime = ???
编辑1
作为附加信息,我不得不说,字符串(inputString
)是从条形码中读取的。因此其中的分隔符始终是/
。
inputStringFormat
变量更改为:
var inputStringFormat = @"MM'/'yyyy";
答案 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