将字符串转换为Date

时间:2012-01-17 12:43:20

标签: c# .net datetime

在我的系统的一部分中,我遇到这种情况:我将收到一个表示日期的字符串和另一个表示时间的字符串。 我需要在DateTime中提供这些信息。所以,做了一个:     

string date = "17012012";
string hour = "103445";

date = string.Format("{0}/{1}/{2}", date.Substring(0, 2), 
            date.Substring(2, 2), date.Substring(4, 4));
hour = string.Format("{0}:{1}:{2}", hour.Substring(0, 2),
            hour.Substring(2, 2), hour.Substring(4, 2));

DateTime example = new DateTime();
example = DateTime.Parse(string.Format("{0} {1}", date, hour));

好的,但这是一个好模式吗?是否有“更美丽”的方式来做到这一点?

3 个答案:

答案 0 :(得分:7)

您可以使用DateTime.ParseExact代替

e.g。

DateTime.ParseExact(date + hour, "ddMMyyyyHHmmss", CultureInfo.InvariantCulture);

答案 1 :(得分:2)

查看MSDN文档中的ParseParseExact DateTime方法。

我认为Parsing Dates and Times in .NET也可以提供帮助。

答案 2 :(得分:1)

您的程序必须以这种或那种方式解析此格式。 我会这样做的:

string date = "17012012";
string time = "103445";

int year = Convert.ToInt32(date.Substring(4, 4));
int month = Convert.ToInt32(date.Substring(2, 2));
int day = Convert.ToInt32(date.Substring(0, 2));
int hour = Convert.ToInt32(time.Substring(0, 2));
int minute = Convert.ToInt32(time.Substring(2, 2));
int second = Convert.ToInt32(time.Substring(4, 2));

DateTime example = new DateTime(year, month, day, hour, minute, second);