在我的系统的一部分中,我遇到这种情况:我将收到一个表示日期的字符串和另一个表示时间的字符串。 我需要在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));
好的,但这是一个好模式吗?是否有“更美丽”的方式来做到这一点?
答案 0 :(得分:7)
您可以使用DateTime.ParseExact代替
e.g。
DateTime.ParseExact(date + hour, "ddMMyyyyHHmmss", CultureInfo.InvariantCulture);
答案 1 :(得分:2)
查看MSDN文档中的Parse和ParseExact 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);