using System.Diagnostics;
using System.Globalization;
public static void Main(string[] args) {
var tempo = new Stopwatch();
for (var i = 0; i < 10000; i++) {
var strBuilder = new StringBuilder();
strBuilder.Append(data).Insert(2, "/").Insert(5, "/");
strBuilder.Append(" " + hora).Insert(13, ":");
DateTime dateTime = new DateTime();
dateTime = Convert.ToDateTime(strBuilder.ToString());
Console.WriteLine("SB = {0}ms", tempo.ElapsedMilliseconds);
for (var i = 0; i < 10000; i++) {
var dateTime = Convert.ToDateTime(data.Substring(0, 2) + "/" +
data.Substring(2, 2) + "/" +
data.Substring(4, 4) + " " +
hora.Substring(0, 2) + ":" +
Console.WriteLine("Concat = {0}ms", tempo.ElapsedMilliseconds);
for (var i = 0; i < 10000; i++) {
var dateTime = DateTime.ParseExact(data+hora, "ddMMyyyyHHmm", CultureInfo.InvariantCulture);
Console.WriteLine("ParseExact = {0}ms", tempo.ElapsedMilliseconds);
for (var i = 0; i < 10000; i++) {
var dateTime = new DateTime(Convert.ToInt32(data.Substring(4, 4)),
Convert.ToInt32(data.Substring(2, 2)),
Convert.ToInt32(data.Substring(0, 2)),
Convert.ToInt32(hora.Substring(0, 2)),
Convert.ToInt32(hora.Substring(2, 2)),0);
Console.WriteLine("Convert = {0}ms", tempo.ElapsedMilliseconds);
for (var i = 0; i < 10000; i++) {
var dateTime = DateTime.Parse(string.Format("{0}/{1}/{2} {3}:{4}",
} catch (FormatException ex) {
Console.WriteLine("Parse = {0}ms", tempo.ElapsedMilliseconds);