从“mm / yyyy”格式获取DateTime Obj日期字符串

时间:2009-11-20 20:49:08

标签: c# parsing datetime

我有一个格式为“08/1999”的日期字符串我想获得相应月份的第一个日期。例如:在这种情况下08/01/1999。 对于en-Us文化来说很简单。我打破了字符串,在字符串中追加“01”以获得08/01/1999然后追溯到DateTime.Parse(datestring),但这仅适用于en-US文化。

我如何为不同的文化做到这一点?

我的日期字符串将始终采用mm / yyyy格式。我试图从这个dateString获取一个DataTime obj。

3 个答案:

答案 0 :(得分:7)

使用ParseExact方法。注意上限M是几个月,而下套m是几分钟。

string dateToConvert = "08/1999";
string format = "MM/yyyy";
CultureInfo provider = CultureInfo.InvariantCulture;

DateTime result = DateTime.ParseExact(dateToConvert, format, provider); 

输出:

{1999-08-01 00:00:00}

您还可以使用Convert.ToDateTime和Parse方法。它将产生相同的结果,但是以隐含的方式:

DateTime result = Convert.ToDateTime(dateToConvert, provider); // Output: {1999-08-01 00:00:00}
DateTime result = DateTime.Parse(dateToConvert, provider); // Output: {1999-08-01 00:00:00}

阅读更多内容:

答案 1 :(得分:3)

  

我打破了字符串,在字符串中附加“01”以获取08/01/1999,然后是DateTime.Parse(datestring)

这是一个非常冗长的方式。只需这样就可以了:

DateTime.Parse("08/1999")

  

我如何为不同的文化做到这一点?

如果您的字符串始终采用此格式,请执行以下操作:

DateTime.Parse("08/1999", CultureInfo.InvariantCulture)

答案 2 :(得分:3)

我不确定我是否正确理解了您的问题,但如果您想强制使用美国日期格式,无论客户端计算机的区域设置如何,您都可以尝试传递CultureInfo.InvariantCulture

DateTime.Parse("08/1999", System.Globalization.CultureInfo.InvariantCulture)