2009-11-20 108 views
0

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

我怎样才能做到这一点不同的文化?

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

+1

这是一个C#的问题吗?如果是这样,请在您的代码中指定此代码,您将更快地获得合适的人员。也许。 – 2009-11-20 20:51:35

+0

你是否还有另一种文化?不知道您正在使用哪种类型的应用程序语言,但可以根据server \ pc上的设置转换日期和时间。 – 2009-11-20 20:52:09

+0

这是C#的问题。 – ssal 2009-11-20 20:54:23

回答

7

使用ParseExact方法。注意上套管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和分析方法。它会产生相同的结果,但在implicite方式:

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} 

更多详情:

3

我打破字符串,追加“01”字符串中获得1999年8月1日,然后DateTime.Parse(datestring)

这是一个非常啰嗦的方式做到这一点。只要这将工作:

DateTime.Parse("08/1999")

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

如果你的字符串始终以这种格式,这样做:

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

3

我不知道如果我正确地理解你的问题,但你可以尝试通过CultureInfo.InvariantCulture如果要强制美国日期格式不管客户端计算机的区域设置如何:

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