2012-01-17 344 views
1

在我的系统的一部分中,我遇到了这种情况:我将收到一个表示日期的字符串和另一个表示时间的字符串。 我需要让这些信息在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)); 

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

回答

7

你可以使用DateTime.ParseExact代替

例如

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

是的,就是这样!很好! 谢谢! – 2012-01-17 12:53:53

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); 
+0

是的,也。但我使用DateTime.ParseExact,这是一个很好的方法。谢谢! – 2012-01-17 17:33:46